diff options
author | paltherr <paltherr@epfl.ch> | 2003-03-13 14:30:32 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2003-03-13 14:30:32 +0000 |
commit | a3cceb2ddfec8afb81d3ba63429da0fefa81e7a7 (patch) | |
tree | a6a34a2c7e9c73b6a1007403fed4537b64501eca /sources | |
parent | 3d3fae031aa8959b082e440f4ca5a57ead7a2c40 (diff) | |
download | scala-a3cceb2ddfec8afb81d3ba63429da0fefa81e7a7.tar.gz scala-a3cceb2ddfec8afb81d3ba63429da0fefa81e7a7.tar.bz2 scala-a3cceb2ddfec8afb81d3ba63429da0fefa81e7a7.zip |
- Made symbol loading lazy
Diffstat (limited to 'sources')
-rw-r--r-- | sources/scalac/Global.java | 34 |
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 |