Skip to content

Commit a7f2e4f

Browse files
committed
Categorize stdlib-bootstrapped TASTy-MiMa issues
1 parent 916d4e7 commit a7f2e4f

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

project/TastyMiMaFilters.scala

+20-15
Original file line numberDiff line numberDiff line change
@@ -63,22 +63,28 @@ object TastyMiMaFilters {
6363
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.util.hashing.Hashing.fromFunction"),
6464
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.IterableOnceOps.aggregate"),
6565
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.sys.package.addShutdownHook"),
66+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.HashTable.init"),
67+
68+
// Probably OK: default parameter
69+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*$default$*"),
6670

67-
// Problems with class constructors
71+
// Problem: secondary constructors?
6872
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*.<init>"),
69-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.*.<init>"),
73+
74+
// Problem The symbol scala.*.<init> has a more restrictive visibility qualifier in current version
75+
// Only on primitive type final abstract classes
7076
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.*.<init>"),
7177

78+
// Problem: constructors have a result type the return unit instead of the class type
79+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.*.<init>"), // scala.math.Numeric.CharIsIntegral.<init>; before: (): scala.math.Numeric.CharIsIntegral; after: (): Unit
80+
7281
// Problem: Missing trait constructor
7382
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*.$init$"),
7483

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

81-
// Problem: Class[T] or ClassTag[T] return type
87+
// Problem: Class[T] or ClassTag[T] with `T` equal to wildcard `_ >: Nothing <: AnyVal` instead of a specific primitive type `T`
8288
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.*.getClass"),
8389
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.reflect.ManifestFactory.*.runtimeClass"),
8490
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.*.elemTag"),
@@ -96,27 +102,27 @@ object TastyMiMaFilters {
96102
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.*.C"),
97103
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.jdk.Accumulator.CC"),
98104
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.EvidenceIterableFactory*.Ev"),
99-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.package.LinearSeq"),
100105

101106
// 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"),
107+
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]
108+
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]]
109+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.package.LinearSeq"), // before: [X] =>> Any; after: [X] ==> scala.&[scala.collection.mutable.Seq[X], scala.collection.LinearSeq[X]]
104110

105111
// Problem: Refined type in signature
106-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.runtime.ScalaRunTime.drop"),
107-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.generic.IsMap.Tupled"),
112+
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)]}
108113
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsMap.*IsMap"),
109114
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsSeq.*IsSeq"),
115+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.runtime.ScalaRunTime.drop"),
110116

111-
// Problem: Case class with varargs
112-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.StringContext.parts"),
117+
// Problem: Case class with varargs.
118+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.StringContext.parts"), // before: scala.<repeated>[Predef.String]; after: scala.collection.immutable.Seq[Predef.String] @scala.annotation.internal.Repeated
113119

114120
// Problem: ???
115121
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.math.Big*.underlying"),
116122

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

121127
// Problem: implicit class (method should not be final)
122128
ProblemMatcher.make(ProblemKind.FinalMember, "scala.collection.convert.*.*"),
@@ -128,7 +134,6 @@ object TastyMiMaFilters {
128134
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsIterable.*OpsIsIterable"),
129135

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

0 commit comments

Comments
 (0)