@@ -6,6 +6,9 @@ object TastyMiMaFilters {
6
6
// OK
7
7
ProblemMatcher .make(ProblemKind .MissingClass , " scala.*.<local child>" ),
8
8
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
+
9
12
// Probably OK
10
13
ProblemMatcher .make(ProblemKind .InternalError , " scala.*" ),
11
14
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.*$extension" ),
@@ -63,22 +66,35 @@ object TastyMiMaFilters {
63
66
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.util.hashing.Hashing.fromFunction" ),
64
67
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.IterableOnceOps.aggregate" ),
65
68
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
66
73
67
- // Problems with class constructors
74
+ // Probably OK: default parameter
75
+ ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.*$default$*" ),
76
+
77
+ // Problem: secondary constructors?
68
78
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>" ),
71
90
72
91
// Problem: Missing trait constructor
73
92
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.*.$init$" ),
74
93
75
- // Problem: default parameter
76
- ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.*$default$*" ), // To check (semantic names vs mangled name?)
77
-
78
94
// Problem: Missing Serializable in companions of serializable classes
79
95
ProblemMatcher .make(ProblemKind .MissingParent , " scala.*$" ),
80
96
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`
82
98
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.*.getClass" ),
83
99
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.reflect.ManifestFactory.*.runtimeClass" ),
84
100
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.*.elemTag" ),
@@ -96,27 +112,24 @@ object TastyMiMaFilters {
96
112
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.*.C" ),
97
113
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.jdk.Accumulator.CC" ),
98
114
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.EvidenceIterableFactory*.Ev" ),
99
- ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.mutable.package.LinearSeq" ),
100
115
101
116
// 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]]
104
120
105
121
// 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)]}
108
123
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.collection.generic.IsMap.*IsMap" ),
109
124
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" ),
113
126
114
127
// Problem: ???
115
128
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.math.Big*.underlying" ),
116
129
117
130
// Problem: Inferred result type of non-private member differs
118
131
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
120
133
121
134
// Problem: implicit class (method should not be final)
122
135
ProblemMatcher .make(ProblemKind .FinalMember , " scala.collection.convert.*.*" ),
@@ -128,7 +141,6 @@ object TastyMiMaFilters {
128
141
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.collection.generic.IsIterable.*OpsIsIterable" ),
129
142
130
143
// Non-categorized
131
- ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.mutable.HashTable.init" ),
132
144
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.collection.immutable.::.next$access$1" ),
133
145
ProblemMatcher .make(ProblemKind .MissingTypeMember , " scala.collection.generic.DefaultSerializable._$1" ),
134
146
ProblemMatcher .make(ProblemKind .NewAbstractMember , " scala.collection.convert.impl.*_=" ),
0 commit comments