diff options
author | Martin Odersky <odersky@gmail.com> | 2013-08-20 11:55:56 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-08-20 11:59:59 +0200 |
commit | b048b321f5f700804ce4e3e67720eb65297eaf39 (patch) | |
tree | 56205d39392df6526089e82b83094320ea2ed27a /src/dotty/tools/dotc/core/SymbolLoaders.scala | |
parent | 9113c243875cd7f6c8ae6774834ea9a0a468acbc (diff) | |
download | dotty-b048b321f5f700804ce4e3e67720eb65297eaf39.tar.gz dotty-b048b321f5f700804ce4e3e67720eb65297eaf39.tar.bz2 dotty-b048b321f5f700804ce4e3e67720eb65297eaf39.zip |
Refactored scheme for maintaining sourceModule, moduleClass and decls in lazy types.
New scheme is more composable.
Diffstat (limited to 'src/dotty/tools/dotc/core/SymbolLoaders.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/SymbolLoaders.scala | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/SymbolLoaders.scala b/src/dotty/tools/dotc/core/SymbolLoaders.scala index 791501ad5..097ab8e9e 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 ModuleClassCompleterWithDecls(modul, newScope, completer), + (modul, _) => completer.proxy withDecls newScope withSourceModule modul, assocFile = completer.sourceFileOrNull) enterNew(owner, module, completer, scope) } @@ -142,7 +142,7 @@ class SymbolLoaders { /** Load contents of a package */ class PackageLoader(override val sourceModule: TermSymbol, classpath: ClassPath)(implicit val cctx: CondensedContext) - extends SymbolLoader with LazyTypeOfModuleClass { + extends SymbolLoader { def description = "package loader " + classpath.name private[core] val preDecls: MutableScope = newScope @@ -277,7 +277,7 @@ class ClassfileLoader(val classfile: AbstractFile)(implicit val cctx: CondensedC else cctx.newModuleSymbol( rootDenot.owner, rootDenot.name.toTermName, Synthetic, Synthetic, - (module, _) => new ModuleClassCompleterWithDecls(module, newScope)) + (module, _) => new NoCompleter() withDecls newScope withSourceModule module) .moduleClass.denot.asClass } if (rootDenot is ModuleClass) (linkedDenot, rootDenot) |