@@ -13,6 +13,7 @@ object TastyMiMaFilters {
13
13
14
14
// Probably OK: object singleton type
15
15
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.mutable.BitSet.bitSetFactory" ),
16
+ ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.immutable.BitSet.bitSetFactory" ),
16
17
17
18
// Probably OK: by-name arguments in signatures
18
19
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.App.delayedInit" ),
@@ -63,22 +64,28 @@ object TastyMiMaFilters {
63
64
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.util.hashing.Hashing.fromFunction" ),
64
65
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.IterableOnceOps.aggregate" ),
65
66
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.sys.package.addShutdownHook" ),
67
+ ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.mutable.HashTable.init" ),
68
+
69
+ // Probably OK: default parameter
70
+ ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.*$default$*" ),
66
71
67
- // Problems with class constructors
72
+ // Problem: secondary constructors?
68
73
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.*.<init>" ),
69
- ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.*.<init>" ),
74
+
75
+ // Problem The symbol scala.*.<init> has a more restrictive visibility qualifier in current version
76
+ // Only on primitive type final abstract classes
70
77
ProblemMatcher .make(ProblemKind .RestrictedVisibilityChange , " scala.*.<init>" ),
71
78
79
+ // Problem: constructors have a result type the return unit instead of the class type
80
+ ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.*.<init>" ), // scala.math.Numeric.CharIsIntegral.<init>; before: (): scala.math.Numeric.CharIsIntegral; after: (): Unit
81
+
72
82
// Problem: Missing trait constructor
73
83
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.*.$init$" ),
74
84
75
- // Problem: default parameter
76
- ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.*$default$*" ), // To check (semantic names vs mangled name?)
77
-
78
85
// Problem: Missing Serializable in companions of serializable classes
79
86
ProblemMatcher .make(ProblemKind .MissingParent , " scala.*$" ),
80
87
81
- // Problem: Class[T] or ClassTag[T] return type
88
+ // Problem: Class[T] or ClassTag[T] with `T` equal to wildcard `_ >: Nothing <: AnyVal` instead of a specific primitive type `T`
82
89
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.*.getClass" ),
83
90
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.reflect.ManifestFactory.*.runtimeClass" ),
84
91
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.*.elemTag" ),
@@ -96,27 +103,27 @@ object TastyMiMaFilters {
96
103
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.*.C" ),
97
104
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.jdk.Accumulator.CC" ),
98
105
ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.EvidenceIterableFactory*.Ev" ),
99
- ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.mutable.package.LinearSeq" ),
100
106
101
107
// 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" ),
108
+ 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]
109
+ 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]]
110
+ 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
111
105
112
// Problem: Refined type in signature
106
- ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.runtime.ScalaRunTime.drop" ),
107
- ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.generic.IsMap.Tupled" ),
113
+ 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
114
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.collection.generic.IsMap.*IsMap" ),
109
115
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.collection.generic.IsSeq.*IsSeq" ),
116
+ ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.runtime.ScalaRunTime.drop" ),
110
117
111
- // Problem: Case class with varargs
112
- ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.StringContext.parts" ),
118
+ // Problem: Case class with varargs.
119
+ ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.StringContext.parts" ), // before: scala.<repeated>[Predef.String]; after: scala.collection.immutable.Seq[Predef.String] @scala.annotation.internal.Repeated
113
120
114
121
// Problem: ???
115
122
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.math.Big*.underlying" ),
116
123
117
124
// Problem: Inferred result type of non-private member differs
118
125
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.collection.convert.JavaCollectionWrappers.IterableWrapperTrait.iterator" ),
119
- ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.util.matching.Regex.MatchIterator.replacementData" ),
126
+ 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
127
121
128
// Problem: implicit class (method should not be final)
122
129
ProblemMatcher .make(ProblemKind .FinalMember , " scala.collection.convert.*.*" ),
@@ -128,7 +135,6 @@ object TastyMiMaFilters {
128
135
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.collection.generic.IsIterable.*OpsIsIterable" ),
129
136
130
137
// Non-categorized
131
- ProblemMatcher .make(ProblemKind .IncompatibleTypeChange , " scala.collection.mutable.HashTable.init" ),
132
138
ProblemMatcher .make(ProblemKind .MissingTermMember , " scala.collection.immutable.::.next$access$1" ),
133
139
ProblemMatcher .make(ProblemKind .MissingTypeMember , " scala.collection.generic.DefaultSerializable._$1" ),
134
140
ProblemMatcher .make(ProblemKind .NewAbstractMember , " scala.collection.convert.impl.*_=" ),
0 commit comments