From a3cceb2ddfec8afb81d3ba63429da0fefa81e7a7 Mon Sep 17 00:00:00 2001 From: paltherr Date: Thu, 13 Mar 2003 14:30:32 +0000 Subject: - Made symbol loading lazy --- sources/scalac/Global.java | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) (limited to 'sources') 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 -- cgit v1.2.3