summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/tools/nsc/dependencies/Changes.scala1
-rw-r--r--src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala6
2 files changed, 6 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/dependencies/Changes.scala b/src/compiler/scala/tools/nsc/dependencies/Changes.scala
index e459494ab6..3340eeb842 100644
--- a/src/compiler/scala/tools/nsc/dependencies/Changes.scala
+++ b/src/compiler/scala/tools/nsc/dependencies/Changes.scala
@@ -173,6 +173,7 @@ abstract class Changes {
cs.toList
}
def removeChangeSet(sym: Symbol): Change = Removed(toEntity(sym))
+ def changeChangeSet(sym: Symbol, msg: String): Change = Changed(toEntity(sym))(msg)
private def toEntity(sym: Symbol): Entity =
if (sym.isClass) Class(sym.fullNameString)
diff --git a/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala b/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala
index a79089c424..b445ec245e 100644
--- a/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala
+++ b/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala
@@ -126,7 +126,11 @@ class RefinedBuildManager(val settings: Settings) extends Changes with BuildMana
case Some(oldSym) =>
changesOf(oldSym) = changeSet(oldSym, sym)
case _ =>
- // a new top level definition, no need to process
+ // a new top level definition
+ changesOf(sym) =
+ sym.info.parents.filter(_.typeSymbol hasFlag Flags.SEALED).map(
+ p => changeChangeSet(p.typeSymbol,
+ sym+" extends a sealed "+p.typeSymbol))
}
}
// Create a change for the top level classes that were removed