Skip to content

Commit 7d72fa6

Browse files
committed
invalidate by external improvements
1 parent 4306042 commit 7d72fa6

File tree

2 files changed

+16
-21
lines changed

2 files changed

+16
-21
lines changed

internal/zinc-core/src/main/scala/sbt/internal/inc/IncrementalNameHashing.scala

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ private final class IncrementalNameHashing(log: sbt.util.Logger, options: IncOpt
6868
externalAPIChange: APIChange,
6969
isScalaClass: String => Boolean): Set[String] = {
7070
val modifiedBinaryClassName = externalAPIChange.modifiedClass
71-
val invalidationReason = memberRefInvalidator.invalidationReason(externalAPIChange)
71+
val invalidationReason = memberRefInvalidator.invalidationReason(externalAPIChange).capitalize
7272
log.debug(
7373
s"$invalidationReason\nAll member reference dependencies will be considered within this context.")
7474
// Propagate inheritance dependencies transitively.
@@ -136,20 +136,17 @@ private final class IncrementalNameHashing(log: sbt.util.Logger, options: IncOpt
136136
def debugMessage: String = {
137137
if (all.isEmpty) s"Change $change does not affect any class."
138138
else {
139-
val byTransitiveInheritance =
140-
if (transitiveInheritance.nonEmpty) s"by transitive inheritance: $transitiveInheritance"
141-
else ""
142-
val byLocalInheritance =
143-
if (localInheritance.nonEmpty) s"by local inheritance: $localInheritance" else ""
144-
val byMemberRef =
145-
if (memberRef.nonEmpty) s"by member reference: $memberRef" else ""
146-
147-
s"""Change $change invalidates ${all.size} classes due to ${memberRefInvalidator
148-
.invalidationReason(change)}
149-
|\t> $byTransitiveInheritance
150-
|\t> $byLocalInheritance
151-
|\t> $byMemberRef
152-
""".stripMargin
139+
def by(reason: String, classes: Set[String]) = {
140+
if (classes.isEmpty) ""
141+
else {
142+
s"\tby $reason: ${classes.mkString(", ")}\n"
143+
}
144+
}
145+
146+
s"${all.size} classes were invalidated due to ${memberRefInvalidator.invalidationReason(change)}\n" +
147+
by("transitive inheritance", transitiveInheritance) +
148+
by("local inheritance", localInheritance) +
149+
by("member reference", memberRef)
153150
}
154151
}
155152

internal/zinc-core/src/main/scala/sbt/internal/inc/MemberRefInvalidator.scala

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,17 +67,15 @@ private[inc] class MemberRefInvalidator(log: Logger, logRecompileOnMacro: Boolea
6767

6868
def invalidationReason(apiChange: APIChange): String = apiChange match {
6969
case TraitPrivateMembersModified(modifiedClass) =>
70-
s"The private signature of trait ${modifiedClass} changed."
70+
s"the private signature of trait $modifiedClass changed."
7171
case APIChangeDueToMacroDefinition(modifiedSrcFile) =>
72-
s"The $modifiedSrcFile source file declares a macro."
72+
s"the $modifiedSrcFile source file declares a macro."
7373
case NamesChange(modifiedClass, modifiedNames) =>
7474
modifiedNames.in(UseScope.Implicit) match {
7575
case changedImplicits if changedImplicits.isEmpty =>
76-
s"""|The $modifiedClass has the following regular definitions changed:
77-
|\t${modifiedNames.names.mkString(", ")}.""".stripMargin
76+
s"the $modifiedClass has the following regular definitions changed: ${modifiedNames.names}"
7877
case changedImplicits =>
79-
s"""|The $modifiedClass has the following implicit definitions changed:
80-
|\t${changedImplicits.mkString(", ")}.""".stripMargin
78+
s"""the $modifiedClass has the following implicit definitions changed: $changedImplicits""".stripMargin
8179
}
8280
}
8381

0 commit comments

Comments
 (0)