@@ -63,22 +63,28 @@ object TastyMiMaFilters {
63
63
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.util.hashing.Hashing.fromFunction" ),
64
64
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.IterableOnceOps.aggregate" ),
65
65
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$*" ),
66
70
67
- // Problems with class constructors
71
+ // Problem: secondary constructors?
68
72
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
70
76
ProblemMatcher .make(ProblemKind .RestrictedVisibilityChange , " scala.*.<init>" ),
71
77
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
+
72
81
// Problem: Missing trait constructor
73
82
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.*.$init$" ),
74
83
75
- // Problem: default parameter
76
- ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.*$default$*" ), // To check (semantic names vs mangled name?)
77
-
78
84
// Problem: Missing Serializable in companions of serializable classes
79
85
ProblemMatcher .make(ProblemKind .MissingParent , " scala.*$" ),
80
86
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`
82
88
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.*.getClass" ),
83
89
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.reflect.ManifestFactory.*.runtimeClass" ),
84
90
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.*.elemTag" ),
@@ -96,27 +102,27 @@ object TastyMiMaFilters {
96
102
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.*.C" ),
97
103
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.jdk.Accumulator.CC" ),
98
104
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.EvidenceIterableFactory*.Ev" ),
99
- ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.mutable.package.LinearSeq" ),
100
105
101
106
// 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]]
104
110
105
111
// 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)]}
108
113
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.collection.generic.IsMap.*IsMap" ),
109
114
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.collection.generic.IsSeq.*IsSeq" ),
115
+ ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.runtime.ScalaRunTime.drop" ),
110
116
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
113
119
114
120
// Problem: ???
115
121
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.math.Big*.underlying" ),
116
122
117
123
// Problem: Inferred result type of non-private member differs
118
124
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
120
126
121
127
// Problem: implicit class (method should not be final)
122
128
ProblemMatcher .make(ProblemKind .FinalMember , " scala.collection.convert.*.*" ),
@@ -128,7 +134,6 @@ object TastyMiMaFilters {
128
134
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.collection.generic.IsIterable.*OpsIsIterable" ),
129
135
130
136
// Non-categorized
131
- ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.mutable.HashTable.init" ),
132
137
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.collection.immutable.::.next$access$1" ),
133
138
ProblemMatcher .make(ProblemKind .MissingTypeMember , " scala.collection.generic.DefaultSerializable._$1" ),
134
139
ProblemMatcher .make(ProblemKind .NewAbstractMember , " scala.collection.convert.impl.*_=" ),
0 commit comments