From 435bd1d587bfc7a3ed1720d315032f80a4111e0a Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Wed, 1 May 2013 09:35:51 -0400 Subject: [PATCH] Only invalidate package objects that inherit from invalidated files. Originally described in cf355f18224332c3311b552cd9a777f5624426a4. --- compile/inc/src/main/scala/sbt/inc/Incremental.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compile/inc/src/main/scala/sbt/inc/Incremental.scala b/compile/inc/src/main/scala/sbt/inc/Incremental.scala index 2f7f568ba..88289a426 100644 --- a/compile/inc/src/main/scala/sbt/inc/Incremental.scala +++ b/compile/inc/src/main/scala/sbt/inc/Incremental.scala @@ -96,10 +96,10 @@ object Incremental else invalidated } - // Package objects are fragile: if they depend on an invalidated source, get "class file needed by package is missing" error + // Package objects are fragile: if they inherit from an invalidated source, get "class file needed by package is missing" error // This might be too conservative: we probably only need package objects for packages of invalidated sources. private[this] def invalidatedPackageObjects(invalidated: Set[File], relations: Relations): Set[File] = - invalidated flatMap relations.usesInternalSrc filter { _.getName == "package.scala" } + invalidated flatMap relations.publicInherited.internal.reverse filter { _.getName == "package.scala" } /** * Accepts the sources that were recompiled during the last step and functions