Skip to content

Commit 8abc7fc

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

File tree

1 file changed

+21
-15
lines changed

1 file changed

+21
-15
lines changed

project/TastyMiMaFilters.scala

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ object TastyMiMaFilters {
1313

1414
// Probably OK: object singleton type
1515
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.BitSet.bitSetFactory"),
16+
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.immutable.BitSet.bitSetFactory"),
1617

1718
// Probably OK: by-name arguments in signatures
1819
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.App.delayedInit"),
@@ -63,22 +64,28 @@ object TastyMiMaFilters {
6364
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.util.hashing.Hashing.fromFunction"),
6465
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.IterableOnceOps.aggregate"),
6566
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$*"),
6671

67-
// Problems with class constructors
72+
// Problem: secondary constructors?
6873
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
7077
ProblemMatcher.make(ProblemKind.RestrictedVisibilityChange, "scala.*.<init>"),
7178

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+
7282
// Problem: Missing trait constructor
7383
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.*.$init$"),
7484

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

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`
8289
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.*.getClass"),
8390
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.reflect.ManifestFactory.*.runtimeClass"),
8491
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.*.elemTag"),
@@ -96,27 +103,27 @@ object TastyMiMaFilters {
96103
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.*.C"),
97104
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.jdk.Accumulator.CC"),
98105
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.EvidenceIterableFactory*.Ev"),
99-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.package.LinearSeq"),
100106

101107
// 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]]
104111

105112
// 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)]}
108114
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsMap.*IsMap"),
109115
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsSeq.*IsSeq"),
116+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.runtime.ScalaRunTime.drop"),
110117

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
113120

114121
// Problem: ???
115122
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.math.Big*.underlying"),
116123

117124
// Problem: Inferred result type of non-private member differs
118125
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
120127

121128
// Problem: implicit class (method should not be final)
122129
ProblemMatcher.make(ProblemKind.FinalMember, "scala.collection.convert.*.*"),
@@ -128,7 +135,6 @@ object TastyMiMaFilters {
128135
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.generic.IsIterable.*OpsIsIterable"),
129136

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

0 commit comments

Comments
 (0)