aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/SymbolLoaders.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-08-20 11:55:56 +0200
committerMartin Odersky <odersky@gmail.com>2013-08-20 11:59:59 +0200
commitb048b321f5f700804ce4e3e67720eb65297eaf39 (patch)
tree56205d39392df6526089e82b83094320ea2ed27a /src/dotty/tools/dotc/core/SymbolLoaders.scala
parent9113c243875cd7f6c8ae6774834ea9a0a468acbc (diff)
downloaddotty-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.scala6
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)