diff options
author | Martin Odersky <odersky@gmail.com> | 2006-01-19 18:19:58 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-01-19 18:19:58 +0000 |
commit | cacf5a2b6a873b60a634c78a30f6deeb283ffeec (patch) | |
tree | 1ce3c96605e60fc2f86999f8b0b8cc5db65a278a /src/compiler/scala/tools/nsc/Global.scala | |
parent | e885bf6a4b0110185cde628dc367091284f56c9f (diff) | |
download | scala-cacf5a2b6a873b60a634c78a30f6deeb283ffeec.tar.gz scala-cacf5a2b6a873b60a634c78a30f6deeb283ffeec.tar.bz2 scala-cacf5a2b6a873b60a634c78a30f6deeb283ffeec.zip |
Diffstat (limited to 'src/compiler/scala/tools/nsc/Global.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/Global.scala | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala index cdf0b82e29..cafe682170 100644 --- a/src/compiler/scala/tools/nsc/Global.scala +++ b/src/compiler/scala/tools/nsc/Global.scala @@ -365,6 +365,14 @@ class Global(val settings: Settings, val reporter: Reporter) extends SymbolTable /** A map from compiled top-level symbols to their picklers */ val symData = new HashMap[Symbol, PickleBuffer]; + /** does this run compile given class, module, or case factory? */ + def compiles(sym: Symbol): boolean = + if (sym == NoSymbol) false + else if (symSource.isDefinedAt(sym)) true + else if (!sym.owner.isPackageClass) compiles(sym.toplevelClass) + else if (sym.isModuleClass) compiles(sym.sourceModule) + else false; + def compileSources(sources: List[SourceFile]): unit = { val startTime = System.currentTimeMillis(); reporter.reset; @@ -395,27 +403,13 @@ class Global(val settings: Settings, val reporter: Reporter) extends SymbolTable if (reporter.errors == 0) { assert(symData.isEmpty, symData.elements.toList); -/* - for (val Pair(sym, pickled) <- symData.elements.toList) { - sym setPos Position.NOPOS; -// if (symData contains sym) { -// symData -= sym; -// symData -= sym.linkedSym; -// writeSymblFile(sym, pickled) -// } -// } -*/ - for (val Pair(sym, file) <- symSource.elements) { - sym setPos Position.NOPOS; - if (sym.isTerm) sym.moduleClass setPos Position.NOPOS; - resetPackageClass(sym.owner); - } } else { for (val Pair(sym, file) <- symSource.elements) { sym.reset(new loaders.SourcefileLoader(file)); if (sym.isTerm) sym.moduleClass.reset(loaders.moduleClassLoader); } } + for (val Pair(sym, file) <- symSource.elements) resetPackageClass(sym.owner); informTime("total", startTime); } |