summaryrefslogtreecommitdiff
path: root/sources/scalac
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-03-21 16:49:06 +0000
committerpaltherr <paltherr@epfl.ch>2004-03-21 16:49:06 +0000
commit1e69dfd7774211aa276479d7b031bcee5557d0e2 (patch)
tree5424a7250392e8203b37a25f17e8cccb9aea0f5e /sources/scalac
parent5ed2fb0f5d44522925e737198aba3249f091d13c (diff)
downloadscala-1e69dfd7774211aa276479d7b031bcee5557d0e2.tar.gz
scala-1e69dfd7774211aa276479d7b031bcee5557d0e2.tar.bz2
scala-1e69dfd7774211aa276479d7b031bcee5557d0e2.zip
- Simplified method lateEnter in Analyzer and A...
- Simplified method lateEnter in Analyzer and AnalyzerPhase Added - Global.compileLate Changed SourceCompleter and Analyer to use it - Removed mixinOnly from SourceCompleter
Diffstat (limited to 'sources/scalac')
-rw-r--r--sources/scalac/Global.java13
-rw-r--r--sources/scalac/symtab/SourceCompleter.java15
-rw-r--r--sources/scalac/typechecker/AnalyzerPhase.java2
3 files changed, 15 insertions, 15 deletions
diff --git a/sources/scalac/Global.java b/sources/scalac/Global.java
index d83751926d..5ae1d874ba 100644
--- a/sources/scalac/Global.java
+++ b/sources/scalac/Global.java
@@ -384,6 +384,19 @@ public abstract class Global {
treePrinter.end();
}
+ /** Compiles an additional source file. */
+ public void compileLate(SourceFile source, boolean mixinOnly) {
+ Unit unit = new Unit(this, source, false, mixinOnly);
+ Phase backup = currentPhase;
+ // !!! add code to print/skip/graph as in compile
+ currentPhase = PHASE.PARSER.phase();
+ PHASE.PARSER.phase().apply(new Unit[] {unit});
+ currentPhase = PHASE.ANALYZER.phase();
+ ((AnalyzerPhase)PHASE.ANALYZER.phase()).lateEnter(unit);
+ // !!! add code for later phases?
+ currentPhase = backup;
+ }
+
private void print() {
if (currentPhase.id == PHASE.MAKEBOXINGEXPLICIT.id()) {
boolean html = args.printer.value.equals(PRINTER_HTML);
diff --git a/sources/scalac/symtab/SourceCompleter.java b/sources/scalac/symtab/SourceCompleter.java
index e70023c935..b9456a4b10 100644
--- a/sources/scalac/symtab/SourceCompleter.java
+++ b/sources/scalac/symtab/SourceCompleter.java
@@ -20,28 +20,15 @@ import java.io.*;
public class SourceCompleter extends SymbolLoader {
- private final boolean mixinOnly;
-
public SourceCompleter(Global global) {
- this(global, false);
- }
-
- public SourceCompleter(Global global, boolean mixinOnly) {
super(global);
- this.mixinOnly = mixinOnly;
}
/** complete class symbol c by loading the unit
*/
public String doComplete(Symbol clasz) throws IOException {
SourceFile source = global.getSourceFile(clasz);
- Unit unit = new Unit(global, source, false, mixinOnly);
- Phase phase = global.currentPhase;
- global.currentPhase = global.PHASE.PARSER.phase();
- global.PHASE.PARSER.phase().apply(new Unit[] {unit});
- global.currentPhase = global.PHASE.ANALYZER.phase();
- ((AnalyzerPhase)global.PHASE.ANALYZER.phase()).lateEnter(global, unit, clasz);
- global.currentPhase = phase;
+ global.compileLate(source, false);
return "source file '" + source + "'";
}
diff --git a/sources/scalac/typechecker/AnalyzerPhase.java b/sources/scalac/typechecker/AnalyzerPhase.java
index 34ff998cb3..1c972e6cab 100644
--- a/sources/scalac/typechecker/AnalyzerPhase.java
+++ b/sources/scalac/typechecker/AnalyzerPhase.java
@@ -29,6 +29,6 @@ public abstract class AnalyzerPhase extends Phase {
public abstract void addConsoleImport(Symbol module);
- public abstract void lateEnter(Global global, Unit unit, Symbol symbol);
+ public abstract void lateEnter(Unit unit);
}