Skip to content

Commit ddb632b

Browse files
Categorize TASTy-MiMa issues in stdlib-bootstrapped (#18017)
[skip community_build] [skip docs] [skip test_sbt]
2 parents 0d8bdd6 + f201016 commit ddb632b

File tree

1 file changed

+61
-55
lines changed

1 file changed

+61
-55
lines changed

project/TastyMiMaFilters.scala

Lines changed: 61 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ object TastyMiMaFilters {
99
// Probably OK
1010
ProblemMatcher.make(ProblemKind.IncompatibleSelfTypeChange, "scala.*"),
1111

12-
// Probably OK: object singleton type
13-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.BitSet.bitSetFactory"),
14-
1512
// Probably OK: Case class with varargs
1613
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.StringContext.parts"), // before: scala.<repeated>[Predef.String]; after: scala.collection.immutable.Seq[Predef.String] @scala.annotation.internal.Repeated
1714

@@ -39,10 +36,12 @@ object TastyMiMaFilters {
3936
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.*.getClass"),
4037
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.reflect.ManifestFactory.*.runtimeClass"),
4138
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.*.elemTag"),
39+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.UnrolledBuffer.Unrolled.<init>$default$4"),
4240

4341
// Problem: Case class with private constructor
4442
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.concurrent.duration.Deadline.apply"),
4543
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.concurrent.duration.Deadline.copy"),
44+
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.concurrent.duration.Deadline.copy$default$1"),
4645

4746
// Problem: Missing type arguments with higher-kinded types
4847
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.SortedSetFactoryDefaults._$5"),
@@ -54,63 +53,63 @@ object TastyMiMaFilters {
5453
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.jdk.Accumulator.CC"),
5554
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.EvidenceIterableFactory*.Ev"),
5655

57-
// Problem: Incompatible type change is `with` intersection types
58-
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]
59-
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]]
60-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.package.LinearSeq"), // before: [X] =>> Any; after: [X] ==> scala.&[scala.collection.mutable.Seq[X], scala.collection.LinearSeq[X]]
61-
6256
// Problem: Refined type in signature
6357
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)]}
6458
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsMap.*IsMap"),
6559
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsSeq.*IsSeq"),
6660
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.runtime.ScalaRunTime.drop"),
6761

68-
// Problem: ???
62+
// Problem: Overriding java method (`public abstract Object underlying();` with `def underlying: Object`)
6963
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.math.Big*.underlying"),
64+
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.math.ScalaNumericConversions.underlying"),
7065

7166
// Problem: Inferred result type of non-private member differs
7267
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.JavaCollectionWrappers.IterableWrapperTrait.iterator"),
7368
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"),
70+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.UnrolledBuffer.classTagCompanion"),
71+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.JavaCollectionWrappers.SetWrapper.iterator"),
72+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.concurrent.FailedNode.string"),
7473

7574
// Problem: implicit class
7675
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsIterableLowPriority.is*LikeIsIterable"),
7776
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsIterableOnce.iterableOnceIsIterableOnce"),
7877
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsIterableOnceLowPriority.isIterableLikeIsIterableOnce"),
7978
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsIterable.*OpsIsIterable"),
8079

81-
// Non-categorized
80+
// Problem: super accessors
81+
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
82+
83+
// Problem: `private[scala] var` in case class
8284
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.immutable.::.next$access$1"),
83-
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.generic.DefaultSerializable._$1"),
85+
86+
// Problem Missing setter for `protected var`
8487
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.collection.convert.impl.*_="),
85-
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.math.ScalaNumericConversions.underlying"),
86-
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.*.superscala$*$*$$*"),
8788

88-
ProblemMatcher.make(ProblemKind.InternalError, "scala.concurrent.duration.package.*"),
89-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.package.:+.unapply"),
90-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.package.+:.unapply"),
91-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.SortedMapOps.++"),
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]
9295
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.SortedMapOps.concat"),
93-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.map"),
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"),
94101
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.+"),
95102
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.collect"),
96-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.sortedMapFromIterable"),
97103
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.flatMap"),
98-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.WithFilter.map"),
104+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.map"),
105+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.sortedMapFromIterable"),
99106
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.WithFilter.flatMap"),
100-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.StrictOptimizedSortedMapOps.collect"),
101-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.StrictOptimizedSortedMapOps.concat"),
102-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.StrictOptimizedSortedMapOps.map"),
107+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.SortedMapOps.WithFilter.map"),
103108
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.StrictOptimizedSortedMapOps.+"),
109+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.StrictOptimizedSortedMapOps.collect"),
104110
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.StrictOptimizedSortedMapOps.flatMap"),
105-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.SortedSetFactoryDefaults.fromSpecific"),
106-
ProblemMatcher.make(ProblemKind.InternalError, "scala.collection.SeqView.prependedAll"),
107-
ProblemMatcher.make(ProblemKind.InternalError, "scala.collection.SeqView.appendedAll"),
108-
ProblemMatcher.make(ProblemKind.InternalError, "scala.collection.SeqView.concat"),
109-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.SortedMapFactoryDefaults.fromSpecific"),
110-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.AnyStepper.ofParIntStepper"),
111-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.AnyStepper.ofParLongStepper"),
112-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.AnyStepper.ofParDoubleStepper"),
113-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.StepperShape.parUnbox"),
111+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.StrictOptimizedSortedMapOps.map"),
112+
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.collection.immutable.SortedMapOps.updated"),
114113
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.map"),
115114
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.collect"),
116115
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.diff"),
@@ -121,34 +120,41 @@ object TastyMiMaFilters {
121120
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.xor"),
122121
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.BitSetOps.flatMap"),
123122
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"),
124134
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.runtime.Tuple2Zipped.Ops.zipped"),
125135
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.runtime.Tuple3Zipped.Ops.zipped"),
126-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.immutable.SortedMapOps.updated"),
127-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.immutable.SortedMapOps.updatedWith"),
128-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.immutable.SortedMapOps.transform"),
129-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.immutable.SortedMapOps.+"),
130-
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.collection.immutable.SortedMapOps.updated"),
131-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.immutable.StrictOptimizedSortedMapOps.concat"),
132-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.immutable.BitSet.bitSetFactory"),
133-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.generic.IsMap.apply"),
134136
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.impl.BitSetStepper.from"),
135-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.impl.*.semiclone"),
136-
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.collection.convert.impl.*.semiclone"),
137-
ProblemMatcher.make(ProblemKind.FinalMember, "scala.collection.convert.AsJavaExtensions.*AsJava"),
138-
ProblemMatcher.make(ProblemKind.FinalMember, "scala.collection.convert.AsScalaExtensions.*AsScala"),
139-
ProblemMatcher.make(ProblemKind.FinalMember, "scala.collection.convert.StreamExtensions.*"),
137+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.*mutable.*Map.valueStepper"),
138+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.*mutable.*Map.keyStepper"),
140139
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.StreamExtensions.StepperHasParStream"),
141-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.JavaCollectionWrappers.SetWrapper.iterator"),
142-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*.stepper"),
143-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*.valueStepper"),
144-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*.keyStepper"),
145140
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*.efficientStepper"),
146141
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.jdk.Accumulator.efficientStepper"),
147-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.mutable.SortedMapOps.updated"),
148-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.UnrolledBuffer.classTagCompanion"),
149-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.UnrolledBuffer.Unrolled.<init>$default$4"),
150-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.util.hashing.Hashing.fromFunction"),
151-
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.concurrent.duration.Deadline.copy$default$1"),
152-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.concurrent.FailedNode.string"),
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+
147+
// TASTy-MiMa bug? Wildcards in self type
148+
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.generic.DefaultSerializable._$1"),
149+
150+
// TASTy-MiMa bug? module classes
151+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.immutable.BitSet.bitSetFactory"), // The symbol scala.collection.immutable.BitSet.bitSetFactory has an incompatible type in current version: before: scala.collection.immutable.BitSet$; after: scala.collection.immutable.BitSet.type
152+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.BitSet.bitSetFactory"), // The symbol scala.collection.mutable.BitSet.bitSetFactory has an incompatible type in current version: before: scala.collection.mutable.BitSet$; after: scala.collection.mutable.BitSet.type
153+
154+
// TASTy-MiMa bugs
155+
ProblemMatcher.make(ProblemKind.InternalError, "scala.collection.SeqView.appendedAll"),
156+
ProblemMatcher.make(ProblemKind.InternalError, "scala.collection.SeqView.concat"),
157+
ProblemMatcher.make(ProblemKind.InternalError, "scala.collection.SeqView.prependedAll"),
158+
ProblemMatcher.make(ProblemKind.InternalError, "scala.concurrent.duration.package.*"),
153159
)
154160
}

0 commit comments

Comments
 (0)