Skip to content

Commit 8e97a51

Browse files
Categorize stdlib-bootstrapped TASTy-MiMa issues (#17987)
2 parents e7fa5dc + 51e472b commit 8e97a51

File tree

1 file changed

+29
-17
lines changed

1 file changed

+29
-17
lines changed

project/TastyMiMaFilters.scala

+29-17
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ object TastyMiMaFilters {
66
// OK
77
ProblemMatcher.make(ProblemKind.MissingClass, "scala.*.<local child>"),
88

9+
// OK: constructors have a result type the return Unit instead of the class type
10+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.*.<init>"), // scala.math.Numeric.CharIsIntegral.<init>; before: (): scala.math.Numeric.CharIsIntegral; after: (): Unit
11+
912
// Probably OK
1013
ProblemMatcher.make(ProblemKind.InternalError, "scala.*"),
1114
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*$extension"),
@@ -63,22 +66,35 @@ object TastyMiMaFilters {
6366
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.util.hashing.Hashing.fromFunction"),
6467
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.IterableOnceOps.aggregate"),
6568
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.sys.package.addShutdownHook"),
69+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.HashTable.init"),
70+
71+
// Probably OK: Case class with varargs
72+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.StringContext.parts"), // before: scala.<repeated>[Predef.String]; after: scala.collection.immutable.Seq[Predef.String] @scala.annotation.internal.Repeated
6673

67-
// Problems with class constructors
74+
// Probably OK: default parameter
75+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*$default$*"),
76+
77+
// Problem: secondary constructors?
6878
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*.<init>"),
69-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.*.<init>"),
70-
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.*.<init>"),
79+
80+
// Problem: The symbol scala.*.<init> has a more restrictive visibility qualifier in current version
81+
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.Boolean.<init>"),
82+
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.Byte.<init>"),
83+
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.Short.<init>"),
84+
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.Int.<init>"),
85+
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.Long.<init>"),
86+
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.Float.<init>"),
87+
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.Double.<init>"),
88+
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.Char.<init>"),
89+
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.Unit.<init>"),
7190

7291
// Problem: Missing trait constructor
7392
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*.$init$"),
7493

75-
// Problem: default parameter
76-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*$default$*"), // To check (semantic names vs mangled name?)
77-
7894
// Problem: Missing Serializable in companions of serializable classes
7995
ProblemMatcher.make(ProblemKind.MissingParent, "scala.*$"),
8096

81-
// Problem: Class[T] or ClassTag[T] return type
97+
// Problem: Class[T] or ClassTag[T] with `T` equal to wildcard `_ >: Nothing <: AnyVal` instead of a specific primitive type `T`
8298
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.*.getClass"),
8399
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.reflect.ManifestFactory.*.runtimeClass"),
84100
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.*.elemTag"),
@@ -96,27 +112,24 @@ object TastyMiMaFilters {
96112
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.*.C"),
97113
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.jdk.Accumulator.CC"),
98114
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.EvidenceIterableFactory*.Ev"),
99-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.package.LinearSeq"),
100115

101116
// Problem: Incompatible type change is `with` intersection types
102-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.convert.impl.*.Semi"),
103-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.immutable.*MapOps.coll"),
117+
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]
118+
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]]
119+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.package.LinearSeq"), // before: [X] =>> Any; after: [X] ==> scala.&[scala.collection.mutable.Seq[X], scala.collection.LinearSeq[X]]
104120

105121
// Problem: Refined type in signature
106-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.runtime.ScalaRunTime.drop"),
107-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.generic.IsMap.Tupled"),
122+
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)]}
108123
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsMap.*IsMap"),
109124
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsSeq.*IsSeq"),
110-
111-
// Problem: Case class with varargs
112-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.StringContext.parts"),
125+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.runtime.ScalaRunTime.drop"),
113126

114127
// Problem: ???
115128
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.math.Big*.underlying"),
116129

117130
// Problem: Inferred result type of non-private member differs
118131
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.JavaCollectionWrappers.IterableWrapperTrait.iterator"),
119-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.util.matching.Regex.MatchIterator.replacementData"),
132+
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
120133

121134
// Problem: implicit class (method should not be final)
122135
ProblemMatcher.make(ProblemKind.FinalMember, "scala.collection.convert.*.*"),
@@ -128,7 +141,6 @@ object TastyMiMaFilters {
128141
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsIterable.*OpsIsIterable"),
129142

130143
// Non-categorized
131-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.HashTable.init"),
132144
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.immutable.::.next$access$1"),
133145
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.generic.DefaultSerializable._$1"),
134146
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.collection.convert.impl.*_="),

0 commit comments

Comments
 (0)