summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala40
1 files changed, 21 insertions, 19 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala b/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala
index 0becbda8bd..db8fc433fe 100644
--- a/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala
+++ b/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala
@@ -103,19 +103,20 @@ abstract class SymbolLoaders {
}
def enterClassAndModule(str: String, completer: SymbolLoader): unit = {
- val owner = if (root.isRoot) definitions.EmptyPackageClass else root;
- val name = newTermName(str);
+ val owner = if (root.isRoot) definitions.EmptyPackageClass else root;
+ val name = newTermName(str);
val clazz = owner.newClass(Position.NOPOS, name.toTypeName);
val module = owner.newModule(Position.NOPOS, name);
- if (completer.sourceFile != null) clazz.sourceFile = completer.sourceFile;
- clazz.setInfo(completer);
- module.setInfo(completer);
- module.moduleClass.setInfo(moduleClassLoader);
- owner.info.decls.enter(clazz);
- owner.info.decls.enter(module);
- assert(clazz.linkedModule == module, module);
- assert(module.linkedClass == clazz, clazz);
- }
+ if (completer.sourceFile != null) clazz.sourceFile = completer.sourceFile;
+ clazz.setInfo(completer);
+ module.setInfo(completer);
+ module.moduleClass.setInfo(moduleClassLoader);
+ owner.info.decls.enter(clazz);
+ owner.info.decls.enter(module);
+ assert(clazz.linkedModule == module, module);
+ assert(module.linkedClass == clazz, clazz);
+ }
+
val classes = new HashMap[String, ClassPath.Context];
val packages = new HashMap[String, ClassPath.Context];
for (val dir <- directory.entries) if (dir.location != null) {
@@ -149,15 +150,16 @@ abstract class SymbolLoaders {
// do classes first
for (val Pair(name, file) <- classes.elements) {
- val loader = if (!file.isSourceFile) {
+ val loader = if (!file.isSourceFile) {
// System.err.println("CLASSFILE: " + file.file + " in " + file);
- new ClassfileLoader(file.file, file.sourceFile, file.sourcePath);
- } else {
- assert(file.sourceFile != null);
- //System.err.println("SOURCEFILE: " + file.sourceFile + " in " + file);
- new SourcefileLoader(file.sourceFile);
- }
- enterClassAndModule(name, loader);
+ new ClassfileLoader(file.classFile, file.sourceFile, file.sourcePath);
+ } else {
+ assert(file.sourceFile != null);
+ //System.err.println("SOURCEFILE: " + file.sourceFile + " in " + file);
+
+ new SourcefileLoader(file.sourceFile);
+ }
+ enterClassAndModule(name, loader);
}
for (val Pair(name, file) <- packages.elements) enterPackage(name, new PackageLoader(file));
}