diff options
author | Martin Odersky <odersky@gmail.com> | 2013-04-07 23:01:07 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-04-07 23:01:07 +0200 |
commit | 19143c67d77a71bd5ef18769e222beed291fa92b (patch) | |
tree | ec309ed9e830dfe4875a0c6a2e7776fa3a8a046f /src/dotty/tools/dotc/core/SymbolLoaders.scala | |
parent | 34cdca9f2eb60facef679cca9c1d7cb4b2ae10dc (diff) | |
download | dotty-19143c67d77a71bd5ef18769e222beed291fa92b.tar.gz dotty-19143c67d77a71bd5ef18769e222beed291fa92b.tar.bz2 dotty-19143c67d77a71bd5ef18769e222beed291fa92b.zip |
Changes to pre complete decls
Dropped preCompleteDecls for a general refactoring that makes decls available after a class is loaded and before it is completed.
Also some other fixes to classloading problems.
Diffstat (limited to 'src/dotty/tools/dotc/core/SymbolLoaders.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/SymbolLoaders.scala | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/SymbolLoaders.scala b/src/dotty/tools/dotc/core/SymbolLoaders.scala index ad3b63fe8..49a25be11 100644 --- a/src/dotty/tools/dotc/core/SymbolLoaders.scala +++ b/src/dotty/tools/dotc/core/SymbolLoaders.scala @@ -49,7 +49,7 @@ class SymbolLoaders { modFlags: FlagSet = EmptyFlags, clsFlags: FlagSet = EmptyFlags, scope: Scope = EmptyScope)(implicit ctx: CondensedContext): Symbol = { val module = ctx.newModuleSymbol( owner, name.toTermName, modFlags, clsFlags, - (modul, _) => new ModuleClassCompleter(modul, completer), + (modul, _) => new ModuleClassCompleter(modul, newScope, completer), assocFile = completer.sourceFileOrNull) enterNew(owner, module, completer, scope) } @@ -142,13 +142,13 @@ class SymbolLoaders { /** Load contents of a package */ class PackageLoader(override val sourceModule: TermSymbol, classpath: ClassPath)(implicit val cctx: CondensedContext) - extends ClassCompleter(newScope) with SymbolLoader { + extends ClassCompleter(newScope) with SymbolLoader { // !!! TODO: ClassCompleter needed? def description = "package loader " + classpath.name def doComplete(root: SymDenotation) { assert(root is PackageClass, root) val pre = root.owner.thisType - root.info = ClassInfo(pre, root.symbol.asClass, Nil, root.preCompleteDecls, TermRef(pre, sourceModule)) + root.info = ClassInfo(pre, root.symbol.asClass, Nil, root.decls, TermRef(pre, sourceModule)) if (!sourceModule.isCompleted) sourceModule.completer.complete(sourceModule) if (!root.isRoot) { @@ -192,6 +192,7 @@ class SymbolLoaders { dest.enter(member) } } + // !!! TODO info.decls -> decls // enter decls of parent classes for (p <- container.info.parents) { if (p.symbol != defn.ObjectClass) { |