summaryrefslogtreecommitdiff
path: root/sources/scalac/typechecker/Analyzer.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/scalac/typechecker/Analyzer.java')
-rw-r--r--sources/scalac/typechecker/Analyzer.java29
1 files changed, 10 insertions, 19 deletions
diff --git a/sources/scalac/typechecker/Analyzer.java b/sources/scalac/typechecker/Analyzer.java
index e577ab8388..9a9803691f 100644
--- a/sources/scalac/typechecker/Analyzer.java
+++ b/sources/scalac/typechecker/Analyzer.java
@@ -110,44 +110,35 @@ public class Analyzer extends Transformer implements Modifiers, Kinds {
assert this.context != null : "could not find context for " + unit;
unit.body = transformStatSeq(unit.body, Symbol.NONE);
if (global.target != global.TARGET_INT && global.reporter.errors() == 0) {
- genSymData(unit.symdata, unit.body);
- finalizeSymData(unit.symdata);
+ genSymData(unit.body);
}
this.unit = null;
this.context = null;
global.operation("checked " + unit);
}
- public void genSymData(HashMap/*<Name, Pickle>*/ symdata, Tree[] stats) {
+ public void genSymData(Tree[] stats) {
for (int i = 0; i < stats.length; i++) {
switch (stats[i]) {
case ClassDef(_, _, _, _, _, _):
case ModuleDef(_, _, _, _):
Symbol sym = stats[i].symbol();
Name fullname = sym.fullName();
- Pickle pickle = (Pickle) unit.symdata.get(fullname);
- if (pickle == null) {
- pickle = new Pickle();
- unit.symdata.put(fullname, pickle);
+ if (global.symdata.get(fullname) == null) {
+ Pickle pickle = new Pickle();
+ pickle.add(sym.owner().info().lookup(sym.name.toTermName()));
+ pickle.add(sym.owner().info().lookup(sym.name.toTypeName()));
+ pickle.pickle();
+ pickle.writeFile(fullname);
+ global.symdata.put(fullname, pickle);
}
- pickle.add(sym.owner().info().lookup(sym.name.toTermName()));
- pickle.add(sym.owner().info().lookup(sym.name.toTypeName()));
break;
case PackageDef(Tree packaged, Tree.Template templ):
- genSymData(symdata, templ.body);
+ genSymData(templ.body);
}
}
}
- public void finalizeSymData(HashMap/*<Name, Pickle>*/ symdata) {
- for (Iterator it = symdata.entrySet().iterator(); it.hasNext();) {
- Map.Entry entry = (Map.Entry) it.next();
- Name fullname = (Name) entry.getKey();
- Pickle pickle = (Pickle) entry.getValue();
- pickle.finalize(fullname);
- }
- }
-
/** Mode constants
*/
static final int NOmode = 0x000;