summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-03-21 18:26:31 +0000
committerpaltherr <paltherr@epfl.ch>2004-03-21 18:26:31 +0000
commit25ebed6d598d62394212cb331d111e203c9310ec (patch)
treeb10e3363ed4bd516fbda27a74fdf81c959e93e3d /sources
parentc86bcd063048ab18836415b85752fa0fe683418c (diff)
downloadscala-25ebed6d598d62394212cb331d111e203c9310ec.tar.gz
scala-25ebed6d598d62394212cb331d111e203c9310ec.tar.bz2
scala-25ebed6d598d62394212cb331d111e203c9310ec.zip
- Moved creation of root class loader into Global
- Changed Symbol.newRootClass to take a Global as argument
Diffstat (limited to 'sources')
-rw-r--r--sources/scalac/Global.java6
-rw-r--r--sources/scalac/symtab/Definitions.java3
-rw-r--r--sources/scalac/symtab/Symbol.java5
3 files changed, 9 insertions, 5 deletions
diff --git a/sources/scalac/Global.java b/sources/scalac/Global.java
index 1807f45b2c..30d385c016 100644
--- a/sources/scalac/Global.java
+++ b/sources/scalac/Global.java
@@ -36,6 +36,7 @@ import scalac.backend.Primitives;
import scalac.symtab.*;
// !!! >>> Interpreter stuff
import scalac.symtab.Definitions;
+import scalac.symtab.classfile.PackageParser;
import scalac.typechecker.AnalyzerPhase;
import scalac.typechecker.Infer;
import scalac.util.*;
@@ -321,6 +322,11 @@ public abstract class Global {
return getSourceFile(file);
}
+ /** Returns the root symbol loader. */
+ public SymbolLoader getRootLoader() {
+ return new PackageParser(this);
+ }
+
/** the top-level compilation process
*/
public void compile(String[] files, boolean console) {
diff --git a/sources/scalac/symtab/Definitions.java b/sources/scalac/symtab/Definitions.java
index 2e1400529c..3d12a1140f 100644
--- a/sources/scalac/symtab/Definitions.java
+++ b/sources/scalac/symtab/Definitions.java
@@ -12,7 +12,6 @@ import scala.tools.util.Position;
import scalac.Global;
import scalac.atree.ATreeTyper;
-import scalac.symtab.classfile.PackageParser;
import scalac.util.Debug;
import scalac.util.Name;
import scalac.util.Names;
@@ -585,7 +584,7 @@ public class Definitions {
atyper = new ATreeTyper(global, this);
// the root class
- ROOT_CLASS = ClassSymbol.newRootClass(new PackageParser(global));
+ ROOT_CLASS = ClassSymbol.newRootClass(global);
// the java, java.lang and scala packages
JAVA = getModule("java");
diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java
index 38967af3ae..1bdbf21bab 100644
--- a/sources/scalac/symtab/Symbol.java
+++ b/sources/scalac/symtab/Symbol.java
@@ -21,7 +21,6 @@ import scalac.util.Name;
import scalac.util.Names;
import scalac.util.NameTransformer;
import scalac.util.Debug;
-import scalac.symtab.classfile.*;
public abstract class Symbol implements Modifiers, Kinds {
@@ -1802,14 +1801,14 @@ public final class ClassSymbol extends TypeSymbol {
}
/** Creates the root class. */
- public static Symbol newRootClass(PackageParser parser) {
+ public static Symbol newRootClass(Global global) {
int pos = Position.NOPOS;
Name name = Names.ROOT.toTypeName();
Symbol owner = Symbol.NONE;
int flags = JAVA | PACKAGE | FINAL | SYNTHETIC;
int attrs = IS_ROOT;
Symbol clasz = new ClassSymbol(pos, name, owner, flags, attrs, NONE);
- clasz.setInfo(parser);
+ clasz.setInfo(global.getRootLoader());
clasz.primaryConstructor().setInfo(
Type.MethodType(Symbol.EMPTY_ARRAY, clasz.typeConstructor()));
// !!! Type.MethodType(Symbol.EMPTY_ARRAY, clasz.thisType()));