aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/SymbolLoaders.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-04-07 23:01:07 +0200
committerMartin Odersky <odersky@gmail.com>2013-04-07 23:01:07 +0200
commit19143c67d77a71bd5ef18769e222beed291fa92b (patch)
treeec309ed9e830dfe4875a0c6a2e7776fa3a8a046f /src/dotty/tools/dotc/core/SymbolLoaders.scala
parent34cdca9f2eb60facef679cca9c1d7cb4b2ae10dc (diff)
downloaddotty-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.scala7
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) {