From de42629d73467e92dbedee498ccd531e156bcd03 Mon Sep 17 00:00:00 2001 From: paltherr Date: Wed, 10 Mar 2004 14:16:35 +0000 Subject: - Removed usage of methods Symbol.makeModule --- .../scala/tools/scalac/typechecker/Analyzer.scala | 2 +- sources/scalac/symtab/classfile/UnPickle.java | 41 +++++++++++----------- 2 files changed, 21 insertions(+), 22 deletions(-) (limited to 'sources') diff --git a/sources/scala/tools/scalac/typechecker/Analyzer.scala b/sources/scala/tools/scalac/typechecker/Analyzer.scala index 37ed261dd3..437cbfdb25 100644 --- a/sources/scala/tools/scalac/typechecker/Analyzer.scala +++ b/sources/scala/tools/scalac/typechecker/Analyzer.scala @@ -850,7 +850,7 @@ class Analyzer(global: scalac_Global, descr: AnalyzerPhase) extends Transformer( var modul: TermSymbol = TermSymbol.lookup( tree.pos, name, owner, mods | MODUL | FINAL, context.scope); if (modul == null) { - modul = new TermSymbol(tree.pos, name, owner, mods).makeModule(); + modul = owner.newModule(tree.pos, mods, name); } else { // The symbol has already been created by some symbol // loader. It must be a real module. diff --git a/sources/scalac/symtab/classfile/UnPickle.java b/sources/scalac/symtab/classfile/UnPickle.java index f87a411f47..3a3b8fa2a6 100644 --- a/sources/scalac/symtab/classfile/UnPickle.java +++ b/sources/scalac/symtab/classfile/UnPickle.java @@ -239,15 +239,16 @@ public class UnPickle implements Kinds, Modifiers, EntryTags, TypeTags { break; case CLASSsym: - entries[n] = sym = new ClassSymbol( - Position.NOPOS, name, owner, flags); Symbol clr = ((flags & MODUL) == 0) ? classroot : moduleroot.moduleClass(); if (name == clr.name && owner == clr.owner()) { if (global.debug) global.log("overwriting " + clr); - sym.copyTo(clr); entries[n] = sym = clr; - } + sym.flags = flags; + } else { + entries[n] = sym = owner.newClass( + Position.NOPOS, flags, name); + } sym.setInfo(getType(inforef)); sym.setTypeOfThis(readTypeRef()); Symbol constr = readSymbolRef(); @@ -258,27 +259,25 @@ public class UnPickle implements Kinds, Modifiers, EntryTags, TypeTags { break; case VALsym: - if (bp < end) { - Symbol tsym = readSymbolRef(); - if (name == Names.CONSTRUCTOR) { - entries[n] = sym = tsym.allConstructors(); - sym.flags = flags; - } else { - assert (flags & MODUL) != 0 : name; - entries[n] = sym = new TermSymbol( - Position.NOPOS, name, owner, flags) - .makeModule((ClassSymbol) tsym); - } - } else { - entries[n] = sym = new TermSymbol( - Position.NOPOS, name, owner, flags); - } + Symbol tsym = bp < end ? readSymbolRef() : null; if (name == moduleroot.name && owner == moduleroot.owner()) { if (global.debug) global.log("overwriting " + moduleroot); - sym.copyTo(moduleroot); entries[n] = sym = moduleroot; - } + sym.flags = flags; + } else if (tsym == null) { + entries[n] = sym = new TermSymbol( + Position.NOPOS, name, owner, flags); + } else { + if (name == Names.CONSTRUCTOR) { + entries[n] = sym = tsym.allConstructors(); + } else { + assert (flags & MODUL) != 0: name; + assert tsym.isModuleClass(): Debug.show(tsym); + entries[n] = sym = tsym.module(); + } + sym.flags = flags; + } Type tp = getType(inforef); sym.setInfo(tp.setOwner(sym)); break; -- cgit v1.2.3