diff options
author | Martin Odersky <odersky@gmail.com> | 2012-05-29 12:59:35 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2012-05-30 17:32:56 +0200 |
commit | e156d4a7cf4afdab91b7c281a0e8ae6e4743cc4a (patch) | |
tree | 7622916722f81294d22699a580e57a0c7202b3fb /src/compiler/scala/tools/nsc/backend/Platform.scala | |
parent | 765aab65614fd18b67b961f4b91047b536a554c3 (diff) | |
download | scala-e156d4a7cf4afdab91b7c281a0e8ae6e4743cc4a.tar.gz scala-e156d4a7cf4afdab91b7c281a0e8ae6e4743cc4a.tar.bz2 scala-e156d4a7cf4afdab91b7c281a0e8ae6e4743cc4a.zip |
Partial redesign of incremental compiler invalidation.
We now do the right thing when packages are either newly created or deleted. Previously there was a problem when a new package was created inside a system package (and, unofrtunately, root is a system package). That's fixed now. We also approximate more tightly now when packages are newly created (iei the newly created symbol gets rescanned, instead of its owner).
Incremental class invalidation: dealing with empty package.
The compiler can now also invalidate the empty package. Previously, no invalidation was done because empty was identified with root, which is considered a system package.
(1) Fixed NPE when creating a new toplevel package in invalidation. (2) generalized interface to deal with multiple entries at a time.
Diffstat (limited to 'src/compiler/scala/tools/nsc/backend/Platform.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/Platform.scala | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/Platform.scala b/src/compiler/scala/tools/nsc/backend/Platform.scala index f97d3e3d56..f770713093 100644 --- a/src/compiler/scala/tools/nsc/backend/Platform.scala +++ b/src/compiler/scala/tools/nsc/backend/Platform.scala @@ -23,9 +23,9 @@ trait Platform { /** The root symbol loader. */ def rootLoader: LazyType - - /** Update classpath with a substituted subentry */ - def updateClassPath(oldEntry: ClassPath[BinaryRepr], newEntry: ClassPath[BinaryRepr]) + + /** Update classpath with a substitution that maps entries to entries */ + def updateClassPath(subst: Map[ClassPath[BinaryRepr], ClassPath[BinaryRepr]]) /** Any platform-specific phases. */ def platformPhases: List[SubComponent] |