summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala b/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala
index 8368990cde..2e300af012 100644
--- a/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala
+++ b/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala
@@ -66,11 +66,13 @@ class RefinedBuildManager(val settings: Settings) extends Changes with BuildMana
}
def update(added: Set[AbstractFile], removed: Set[AbstractFile]) {
- removeFiles(removed)
- update(added)
+ sources --= removed
+ val changes = new mutable.HashMap[Symbol, List[Change]]
+ for (f <- removed; sym <- definitions(f))
+ changes += sym -> List(Removed(Class(sym.fullNameString)))
+ update(added ++ invalidated(removed, changes))
}
-
/** The given files have been modified by the user. Recompile
* them and all files that depend on them. Only files that
* have been previously added as source files are recompiled.