Skip to content

Commit d0f9a51

Browse files
Upgrade tasty-mima's tasty-query to v0.8.4. (#18039)
And remove all the filters that are not necessary anymore.
2 parents b461c94 + 74965f5 commit d0f9a51

File tree

2 files changed

+14
-95
lines changed

2 files changed

+14
-95
lines changed

project/Build.scala

+10-7
Original file line numberDiff line numberDiff line change
@@ -970,14 +970,16 @@ object Build {
970970
((trgDir ** "*.scala") +++ (trgDir ** "*.java")).get.toSet
971971
} (Set(scalaLibrarySourcesJar)).toSeq
972972
}.taskValue,
973-
(Compile / sources) ~= (_.filterNot(file =>
973+
(Compile / sources) ~= (_.filterNot { file =>
974974
// sources from https://github.com/scala/scala/tree/2.13.x/src/library-aux
975-
file.getPath.endsWith("scala-library-src/scala/Any.scala") ||
976-
file.getPath.endsWith("scala-library-src/scala/AnyVal.scala") ||
977-
file.getPath.endsWith("scala-library-src/scala/AnyRef.scala") ||
978-
file.getPath.endsWith("scala-library-src/scala/Nothing.scala") ||
979-
file.getPath.endsWith("scala-library-src/scala/Null.scala") ||
980-
file.getPath.endsWith("scala-library-src/scala/Singleton.scala"))),
975+
val path = file.getPath.replace('\\', '/')
976+
path.endsWith("scala-library-src/scala/Any.scala") ||
977+
path.endsWith("scala-library-src/scala/AnyVal.scala") ||
978+
path.endsWith("scala-library-src/scala/AnyRef.scala") ||
979+
path.endsWith("scala-library-src/scala/Nothing.scala") ||
980+
path.endsWith("scala-library-src/scala/Null.scala") ||
981+
path.endsWith("scala-library-src/scala/Singleton.scala")
982+
}),
981983
(Compile / sources) := {
982984
val files = (Compile / sources).value
983985
val overwritenSourcesDir = (Compile / scalaSource).value
@@ -997,6 +999,7 @@ object Build {
997999
"scala.annotation.specialized",
9981000
"scala.annotation.unspecialized",
9991001
),
1002+
tastyMiMaTastyQueryVersionOverride := Some("0.8.4"),
10001003
tastyMiMaPreviousArtifacts += "org.scala-lang" % "scala-library" % stdlibVersion(Bootstrapped),
10011004
tastyMiMaCurrentClasspath := {
10021005
val javaBootCp = tastyMiMaJavaBootClasspath.value

project/TastyMiMaFilters.scala

+4-88
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,12 @@ import tastymima.intf._
33

44
object TastyMiMaFilters {
55
val StdlibBootstrapped: java.util.List[ProblemMatcher] = asList(
6-
// OK: constructors have a result type the return Unit instead of the class type
7-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.*.<init>"), // scala.math.Numeric.CharIsIntegral.<init>; before: (): scala.math.Numeric.CharIsIntegral; after: (): Unit
8-
96
// Probably OK
107
ProblemMatcher.make(ProblemKind.IncompatibleSelfTypeChange, "scala.*"),
118

129
// Probably OK: Case class with varargs
1310
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.StringContext.parts"), // before: scala.<repeated>[Predef.String]; after: scala.collection.immutable.Seq[Predef.String] @scala.annotation.internal.Repeated
1411

15-
// Problem: secondary constructors?
16-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*.<init>"),
17-
1812
// Problem: The symbol scala.*.<init> has a more restrictive visibility qualifier in current version
1913
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.Boolean.<init>"),
2014
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.Byte.<init>"),
@@ -26,16 +20,14 @@ object TastyMiMaFilters {
2620
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.Char.<init>"),
2721
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.Unit.<init>"),
2822

29-
// Problem: Missing trait constructor
30-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*.$init$"),
31-
3223
// Problem: Missing Serializable in companions of serializable classes
3324
ProblemMatcher.make(ProblemKind.MissingParent, "scala.*$"),
3425

3526
// Problem: Class[T] or ClassTag[T] with `T` equal to wildcard `_ >: Nothing <: AnyVal` instead of a specific primitive type `T`
36-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.*.getClass"),
3727
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.reflect.ManifestFactory.*.runtimeClass"),
3828
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.*.elemTag"),
29+
30+
// Problem: ConstantType for `null` versus `scala.Null`
3931
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.UnrolledBuffer.Unrolled.<init>$default$4"),
4032

4133
// Problem: Case class with private constructor
@@ -47,36 +39,18 @@ object TastyMiMaFilters {
4739
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.SortedSetFactoryDefaults._$5"),
4840
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.SortedMapFactoryDefaults._$6"),
4941

50-
// Problem: Incompatible type change of higher-kinded types
51-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.*CC"),
52-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.*.C"),
53-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.jdk.Accumulator.CC"),
54-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.EvidenceIterableFactory*.Ev"),
55-
56-
// Problem: Refined type in signature
57-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.generic.IsMap.Tupled"), // scala.collection.generic.IsMap.Tupled; source: type Tupled[F[+_]] = { type Ap[X, Y] = F[(X, Y)] }; before: [F] =>> Any; after: [F] =>> { type Ap = [X, Y] =>> F[(X,Y)]}
58-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsMap.*IsMap"),
59-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsSeq.*IsSeq"),
60-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.runtime.ScalaRunTime.drop"),
42+
// Problem? Very complicated signature
43+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.generic.IsMap.mapOpsIsMap"),
6144

6245
// Problem: Overriding java method (`public abstract Object underlying();` with `def underlying: Object`)
6346
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.math.Big*.underlying"),
6447
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.math.ScalaNumericConversions.underlying"),
6548

6649
// Problem: Inferred result type of non-private member differs
6750
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.JavaCollectionWrappers.IterableWrapperTrait.iterator"),
68-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.util.matching.Regex.MatchIterator.replacementData"), // before: scala.Any; after: scala.collection.AbstractIterator[scala.util.matching.Regex] & scala.util.matching.Regex.Replacement
69-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.util.hashing.Hashing.fromFunction"),
7051
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.UnrolledBuffer.classTagCompanion"),
71-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.JavaCollectionWrappers.SetWrapper.iterator"),
7252
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.concurrent.FailedNode.string"),
7353

74-
// Problem: implicit class
75-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsIterableLowPriority.is*LikeIsIterable"),
76-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsIterableOnce.iterableOnceIsIterableOnce"),
77-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsIterableOnceLowPriority.isIterableLikeIsIterableOnce"),
78-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsIterable.*OpsIsIterable"),
79-
8054
// Problem: super accessors
8155
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.*.superscala$*$*$$*"), // The member scala.collection.mutable.Cloneable.superscala$collection$mutable$Cloneable$$clone was concrete or did not exist but is abstract in current version
8256

@@ -86,64 +60,6 @@ object TastyMiMaFilters {
8660
// Problem Missing setter for `protected var`
8761
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.collection.convert.impl.*_="),
8862

89-
// Problem: type projection? Can we just inline the type?
90-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.generic.IsMap.apply"), // before: (c: IsMap.this.Repr)scala.collection.MapOps[IsMap.this.K, IsMap.this.V, ([X, Y] =>> scala.collection.Iterable[scala.Tuple2[X, Y]]), IsMap.this.C]; after: (c: IsMap.this.Repr)scala.collection.MapOps[IsMap.this.K, IsMap.this.V, scala.collection.generic.IsMap.Tupled[([A] =>> scala.collection.Iterable[A])]#Ap, IsMap.this.C]
91-
92-
// Problem: problem with different inherited versions of the operations?
93-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.immutable.StrictOptimizedSortedMapOps.concat"),
94-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.SortedMapOps.++"), // before: [V2 >: SortedMapOps.this.V](xs: scala.collection.IterableOnce[scala.Tuple2[SortedMapOps.this.K, V2]])SortedMapOps.this.CC[SortedMapOps.this.K, V2]; after: [B >: scala.Tuple2[SortedMapOps.this.K, SortedMapOps.this.V]](suffix: scala.collection.IterableOnce[B])([A] =>> scala.collection.Iterable[A])[B]
95-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.SortedMapOps.concat"),
96-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.StrictOptimizedSortedMapOps.concat"),
97-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.immutable.SortedMapOps.+"),
98-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.immutable.SortedMapOps.transform"),
99-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.immutable.SortedMapOps.updated"),
100-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.immutable.SortedMapOps.updatedWith"),
101-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.+"),
102-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.collect"),
103-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.flatMap"),
104-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.map"),
105-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.sortedMapFromIterable"),
106-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.WithFilter.flatMap"),
107-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.WithFilter.map"),
108-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.StrictOptimizedSortedMapOps.+"),
109-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.StrictOptimizedSortedMapOps.collect"),
110-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.StrictOptimizedSortedMapOps.flatMap"),
111-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.StrictOptimizedSortedMapOps.map"),
112-
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.collection.immutable.SortedMapOps.updated"),
113-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.map"),
114-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.collect"),
115-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.diff"),
116-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.intersect"),
117-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.^"),
118-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.concat"),
119-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.fromBitMaskNoCopy"),
120-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.xor"),
121-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.flatMap"),
122-
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.collection.BitSetOps.fromBitMaskNoCopy"),
123-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.mutable.SortedMapOps.updated"),
124-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.SortedSetFactoryDefaults.fromSpecific"), // before: (coll: scala.collection.IterableOnce[SortedSetFactoryDefaults.this.A])SortedSetFactoryDefaults.this.CC[SortedSetFactoryDefaults.this.A]; after: (coll: scala.collection.IterableOnce[(@<annot> (SortedSetFactoryDefaults.this.A & (@<annot> SortedSetFactoryDefaults.this.A)))])(scala.collection.IterableOps[SortedSetFactoryDefaults.this.A, SortedSetFactoryDefaults.this.WithFilterCC, ?]#C & SortedSetFactoryDefaults.this.CC[(@<annot> SortedSetFactoryDefaults.this.A)])
125-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.SortedMapFactoryDefaults.fromSpecific"),
126-
127-
// TASTy-MiMa bug? Incompatible type change is `with` intersection types
128-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.convert.impl.*.Semi"), // scala.collection.convert.impl.BinaryTreeStepperBase.Semi; source: Semi <: Sub with BinaryTreeStepperBase[A, T, _, _]; before: _ :> scala.Nothing <: scala.Any; after: :> scala.Nothing <: scala.collection.convert.impl.BinaryTreeStepperBase.Sub & scala.collection.convert.impl.BinaryTreeStepperBase[scala.collection.convert.impl.BinaryTreeStepperBase.A, scala.collection.convert.impl.BinaryTreeStepperBase.T, _ :> scala.Nothing <: scala.Any, _ :> scala.Nothing <: scala.Any]
129-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.immutable.*MapOps.coll"), // scala.collection.immutable.MapOps.coll; source: C with CC[K, V]; before: scala.Any; after: scala.&[scala.collection.immutable.MapOps.C, scala.collection.immutable.MapOps.CC[scala.collection.immutable.MapOps.K, scala.collection.immutable.MapOps.V]]
130-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.package.LinearSeq"), // before: [X] =>> Any; after: [X] ==> scala.&[scala.collection.mutable.Seq[X], scala.collection.LinearSeq[X]]
131-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.AnyStepper.ofPar*Stepper"),
132-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*.stepper"),
133-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.StepperShape.parUnbox"),
134-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.runtime.Tuple2Zipped.Ops.zipped"),
135-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.runtime.Tuple3Zipped.Ops.zipped"),
136-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.impl.BitSetStepper.from"),
137-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.*mutable.*Map.valueStepper"),
138-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.*mutable.*Map.keyStepper"),
139-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.StreamExtensions.StepperHasParStream"),
140-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*.efficientStepper"),
141-
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.jdk.Accumulator.efficientStepper"),
142-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.package.:+.unapply"),
143-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.package.+:.unapply"),
144-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.impl.*StepperBase.semiclone"),
145-
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.collection.convert.impl.*StepperBase.semiclone"),
146-
14763
// TASTy-MiMa bug? Wildcards in self type
14864
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.generic.DefaultSerializable._$1"),
14965

0 commit comments

Comments
 (0)