summaryrefslogtreecommitdiff
path: root/sources/scalac/Global.java
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-03-13 14:30:32 +0000
committerpaltherr <paltherr@epfl.ch>2003-03-13 14:30:32 +0000
commita3cceb2ddfec8afb81d3ba63429da0fefa81e7a7 (patch)
treea6a34a2c7e9c73b6a1007403fed4537b64501eca /sources/scalac/Global.java
parent3d3fae031aa8959b082e440f4ca5a57ead7a2c40 (diff)
downloadscala-a3cceb2ddfec8afb81d3ba63429da0fefa81e7a7.tar.gz
scala-a3cceb2ddfec8afb81d3ba63429da0fefa81e7a7.tar.bz2
scala-a3cceb2ddfec8afb81d3ba63429da0fefa81e7a7.zip
- Made symbol loading lazy
Diffstat (limited to 'sources/scalac/Global.java')
-rw-r--r--sources/scalac/Global.java34
1 files changed, 22 insertions, 12 deletions
diff --git a/sources/scalac/Global.java b/sources/scalac/Global.java
index a42e04105d..55a43a62f9 100644
--- a/sources/scalac/Global.java
+++ b/sources/scalac/Global.java
@@ -208,7 +208,6 @@ public class Global {
assert phase.id == i;
}
assert PHASE.ANALYZER.id + 1 == POST_ANALYZER_PHASE_ID;
- if (interpret) fixInit();
}
/** Move to next phase
@@ -294,6 +293,24 @@ public class Global {
private Symbol SHOW_DEFINITION;
private Symbol SHOW_VALUE_DEFINITION;
+ private Symbol INTERPRETER() {
+ if (INTERPRETER == null)
+ INTERPRETER = definitions.getModule(SCALA_INTERPRETER_N);
+ return INTERPRETER;
+ }
+
+ private Symbol SHOW_DEFINITION() {
+ if (SHOW_DEFINITION == null)
+ SHOW_DEFINITION = INTERPRETER().lookup(SHOW_DEFINITION_N);
+ return SHOW_DEFINITION;
+ }
+
+ private Symbol SHOW_VALUE_DEFINITION() {
+ if (SHOW_VALUE_DEFINITION == null)
+ SHOW_VALUE_DEFINITION = INTERPRETER().lookup(SHOW_VALUE_DEFINITION_N);
+ return SHOW_VALUE_DEFINITION;
+ }
+
private int module = 0;
private List imports = new ArrayList();
@@ -365,8 +382,8 @@ public class Global {
body.append(
treeGen.Apply(
treeGen.Select(
- treeGen.mkRef(0, INTERPRETER),
- SHOW_DEFINITION),
+ treeGen.mkRef(0, INTERPRETER()),
+ SHOW_DEFINITION()),
new Tree[] {
make.Literal(0, tree.symbol().defString()).setType(
definitions.JAVA_STRING_TYPE)}));
@@ -375,8 +392,8 @@ public class Global {
body.append(
treeGen.Apply(
treeGen.Select(
- treeGen.mkRef(0, INTERPRETER),
- SHOW_VALUE_DEFINITION),
+ treeGen.mkRef(0, INTERPRETER()),
+ SHOW_VALUE_DEFINITION()),
new Tree[] {
make.Literal(0, tree.symbol().defString()).setType(
definitions.JAVA_STRING_TYPE),
@@ -386,13 +403,6 @@ public class Global {
return;
}
}
-
-
- private void fixInit() {
- INTERPRETER = definitions.getModule(SCALA_INTERPRETER_N);
- SHOW_DEFINITION = INTERPRETER.lookup(SHOW_DEFINITION_N);
- SHOW_VALUE_DEFINITION = INTERPRETER.lookup(SHOW_VALUE_DEFINITION_N);
- }
// !!! >>> Interpreter stuff
/** stop the compilation process immediately