Skip to content

Commit 9a9f246

Browse files
committed
Use nightly build on 2.13.12 in stdlib-bootstrapped
This is to get the updated signatures of non-private methods that inferred different types in Scala 2 and Scala 3.
1 parent 8540532 commit 9a9f246

File tree

3 files changed

+17
-94
lines changed

3 files changed

+17
-94
lines changed

project/Build.scala

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,14 @@ object Build {
127127
case Bootstrapped => "2.13.10"
128128
}
129129

130-
/** Version of the scala-library for which we will generate TASTy. */
131-
val stdlibBootstrappedVersion = "2.13.11"
130+
/** Version of the scala-library for which we will generate TASTy.
131+
*
132+
* We should never use a nightly version here to release.
133+
*
134+
* We can use nightly versions to tests the future compatibility in development.
135+
*
136+
*/
137+
val stdlibBootstrappedVersion = "2.13.12-bin-364ee69" // Nightly versions: https://scala-ci.typesafe.com/ui/native/scala-integration/org/scala-lang
132138

133139
val dottyOrganization = "org.scala-lang"
134140
val dottyGithubUrl = "https://github.com/lampepfl/dotty"
@@ -950,6 +956,7 @@ object Build {
950956
scalacOptions -= "-Xfatal-warnings",
951957
ivyConfigurations += SourceDeps.hide,
952958
transitiveClassifiers := Seq("sources"),
959+
Global / resolvers += "scala-integration" at "https://scala-ci.typesafe.com/artifactory/scala-integration/",
953960
libraryDependencies +=
954961
("org.scala-lang" % "scala-library" % stdlibBootstrappedVersion % "sourcedeps"),
955962
(Compile / sourceGenerators) += Def.task {

project/MiMaFilters.scala

Lines changed: 2 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -28,28 +28,6 @@ object MiMaFilters {
2828
// Files that are not compiled in the bootstrapped library
2929
ProblemFilters.exclude[MissingClassProblem]("scala.AnyVal"),
3030

31-
// Inferred result type of non-private member differs (fix in Scala 2)
32-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.convert.JavaCollectionWrappers#IteratorWrapper.remove"),
33-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.convert.JavaCollectionWrappers#JCollectionWrapper.iterableFactory"),
34-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.convert.JavaCollectionWrappers#JDictionaryWrapper.mapFactory"),
35-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.convert.JavaCollectionWrappers#JIterableWrapper.iterableFactory"),
36-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.convert.JavaCollectionWrappers#JListWrapper.iterableFactory"),
37-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.convert.JavaCollectionWrappers#JPropertiesWrapper.mapFactory"),
38-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.immutable.BitSet.bitSetFactory"),
39-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.immutable.TreeSet.sortedIterableFactory"),
40-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.mutable.BitSet.bitSetFactory"),
41-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.mutable.TreeMap.sortedMapFactory"),
42-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.View#LeftPartitionMapped.iterator"),
43-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.View#RightPartitionMapped.iterator"),
44-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.concurrent.duration.FiniteDuration.unary_-"),
45-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.math.BigDecimal.underlying"),
46-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.math.Ordering.tryCompare"),
47-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JConcurrentMapWrapper.empty"),
48-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JMapWrapper.empty"),
49-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JPropertiesWrapper.empty"),
50-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.LinkedHashMap.newBuilder"),
51-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.LinkedHashSet.newBuilder"),
52-
5331
// Scala language features
5432
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.language.<clinit>"),
5533
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.language#experimental.<clinit>"),
@@ -79,9 +57,6 @@ object MiMaFilters {
7957
// Scala 2 intrinsic macros
8058
ProblemFilters.exclude[FinalMethodProblem]("scala.StringContext.s"),
8159

82-
// scala.math.Ordering.tryCompare
83-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*.tryCompare"),
84-
8560
// Scala 2 specialization
8661
ProblemFilters.exclude[MissingClassProblem]("scala.*$sp"),
8762
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*$sp"),
@@ -104,7 +79,6 @@ object MiMaFilters {
10479
ProblemFilters.exclude[FinalMethodProblem]("scala.io.Source.NoPositioner"),
10580
ProblemFilters.exclude[FinalMethodProblem]("scala.io.Source.RelaxedPosition"),
10681
ProblemFilters.exclude[FinalMethodProblem]("scala.io.Source.RelaxedPositioner"),
107-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.RedBlackTree#EqualsIterator.nextResult"),
10882
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.SortedMapOps.coll"),
10983
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.TreeMap.empty"),
11084
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.TreeMap.fromSpecific"),
@@ -113,33 +87,23 @@ object MiMaFilters {
11387
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.TreeMap.fromSpecific"),
11488
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NothingManifest.newArray"),
11589
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NullManifest.newArray"),
116-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.StringContext.unapplySeq"),
11790
ProblemFilters.exclude[MissingFieldProblem]("scala.collection.ArrayOps#ReverseIterator.xs"),
11891
ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.NonLocalReturnControl.value"),
11992
ProblemFilters.exclude[ReversedMissingMethodProblem]("scala.collection.immutable.SortedMapOps.coll"),
12093
) ++
12194
Seq( // DirectMissingMethodProblem
122-
"scala.collection.immutable.ArraySeq#*.elemTag",
123-
"scala.collection.immutable.HashCollisionSetNode.copy",
124-
"scala.collection.immutable.MapKeyValueTupleHashIterator.next",
12595
"scala.collection.LinearSeqIterator#LazyCell.this",
126-
"scala.collection.mutable.AnyRefMap#ToBuildFrom.newBuilder",
127-
"scala.collection.mutable.ArraySeq#*.elemTag",
128-
"scala.collection.mutable.LinkedHashMap.newBuilder", "scala.collection.mutable.LinkedHashSet.newBuilder",
129-
"scala.collection.mutable.LongMap#ToBuildFrom.newBuilder",
13096
"scala.collection.mutable.PriorityQueue#ResizableArrayAccess.this",
131-
"scala.collection.StringView.andThen", "scala.collection.StringView.compose",
13297
"scala.concurrent.BatchingExecutor#AbstractBatch.this",
13398
"scala.concurrent.Channel#LinkedList.this",
13499
"scala.Enumeration#ValueOrdering.this",
135100
"scala.io.Source#RelaxedPosition.this",
136-
"scala.PartialFunction#OrElse.andThen", "scala.PartialFunction#OrElse.orElse",
137-
"scala.runtime.Rich*.num", "scala.runtime.Rich*.ord",
101+
"scala.collection.IterableOnceOps#Maximized.this", // New in 2.13.11: private inner class
102+
"scala.collection.StringView.andThen", "scala.collection.StringView.compose",
138103
"scala.ScalaReflectionException.andThen", "scala.ScalaReflectionException.compose",
139104
"scala.UninitializedFieldError.andThen", "scala.UninitializedFieldError.compose",
140105
"scala.util.Properties.<clinit>",
141106
"scala.util.Sorting.scala$util$Sorting$$mergeSort$default$5",
142-
"scala.collection.IterableOnceOps#Maximized.this" // New in 2.13.11: private inner class
143107
).map(ProblemFilters.exclude[DirectMissingMethodProblem])
144108
}
145109
)
@@ -152,12 +116,6 @@ object MiMaFilters {
152116
ProblemFilters.exclude[MissingFieldProblem]("scala.language.experimental"),
153117
ProblemFilters.exclude[MissingFieldProblem]("scala.languageFeature*"),
154118

155-
// Inferred result type of non-private member differs (fix in Scala 2)
156-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JConcurrentMapWrapper.empty"),
157-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JMapWrapper.empty"),
158-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JPropertiesWrapper.empty"),
159-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.math.Ordering.tryCompare"),
160-
161119
// https://github.com/scala/scala/blob/v2.13.10/src/library/scala/collection/immutable/Range.scala#LL155C1-L156C1
162120
// Issue #17519: we do not set final on the default methods of final copy method.
163121
ProblemFilters.exclude[FinalMethodProblem]("scala.collection.immutable.Range.copy$default$*"),
@@ -175,21 +133,13 @@ object MiMaFilters {
175133
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*._3"),
176134
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*._4"),
177135

178-
// abstract method elemTag()scala.reflect.ClassTag in class scala.collection.mutable.ArraySeq does not have a correspondent in other version
179-
ProblemFilters.exclude[DirectAbstractMethodProblem]("scala.collection.immutable.ArraySeq.elemTag"),
180-
ProblemFilters.exclude[DirectAbstractMethodProblem]("scala.collection.mutable.ArraySeq.elemTag"),
181-
182136
// Non-categorized
183137
ProblemFilters.exclude[IncompatibleMethTypeProblem]("scala.collection.mutable.ArrayBuilder#ofUnit.addAll"),
184138

185139
// Non-categorized
186-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.RedBlackTree#EqualsIterator.nextResult"),
187140
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.SortedMapOps.coll"),
188-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.LinkedHashMap.newBuilder"),
189-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.LinkedHashSet.newBuilder"),
190141
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NothingManifest.newArray"),
191142
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NullManifest.newArray"),
192-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.StringContext.unapplySeq"),
193143

194144
// the type hierarchy of class scala.Array is different in other version. Missing types {java.io.Serializable,java.lang.Cloneable}
195145
ProblemFilters.exclude[MissingTypesProblem]("scala.Array"),

project/TastyMiMaFilters.scala

Lines changed: 6 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3,41 +3,6 @@ import tastymima.intf._
33

44
object TastyMiMaFilters {
55
val StdlibBootstrapped: java.util.List[ProblemMatcher] = asList(
6-
// Ok (needs library from 2.13.12): Inferred result type of non-private member differs
7-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.*.elemTag"), // Fix in https://github.com/scala/scala/pull/10444
8-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.convert.JavaCollectionWrappers.JCollectionWrapper.iterableFactory"), // Fix in https://github.com/scala/scala/pull/10435
9-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.convert.JavaCollectionWrappers.JConcurrentMapWrapper.empty"), // Fix in https://github.com/scala/scala/pull/10435
10-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.convert.JavaCollectionWrappers.JDictionaryWrapper.mapFactory"), // Fix in https://github.com/scala/scala/pull/10435
11-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.convert.JavaCollectionWrappers.JIterableWrapper.iterableFactory"), // Fix in https://github.com/scala/scala/pull/10435
12-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.convert.JavaCollectionWrappers.JListWrapper.iterableFactory"), // Fix in https://github.com/scala/scala/pull/10435
13-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.convert.JavaCollectionWrappers.JMapWrapper.empty"), // Fix in https://github.com/scala/scala/pull/10435
14-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.convert.JavaCollectionWrappers.JPropertiesWrapper.empty"), // Fix in https://github.com/scala/scala/pull/10435
15-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.convert.JavaCollectionWrappers.JPropertiesWrapper.mapFactory"), // Fix in https://github.com/scala/scala/pull/10435
16-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.immutable.TreeSet.sortedIterableFactory"), // Fix in https://github.com/scala/scala/pull/10435
17-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.TreeMap.sortedMapFactory"), // Fix in https://github.com/scala/scala/pull/10435
18-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.UnrolledBuffer.classTagCompanion"), // Fix in https://github.com/scala/scala/pull/10435
19-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.View.LeftPartitionMapped.iterator"), // Fix in https://github.com/scala/scala/pull/10435
20-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.View.RightPartitionMapped.iterator"), // Fix in https://github.com/scala/scala/pull/10435
21-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.concurrent.duration.FiniteDuration.unary_-"), // Fix in https://github.com/scala/scala/pull/10435
22-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.reflect.ManifestFactory.*.runtimeClass"), // Fix in https://github.com/scala/scala/pull/10444
23-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.sys.process.ProcessBuilderImpl.AbstractBuilder.toSink"), // Fix in https://github.com/scala/scala/pull/10435
24-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.sys.process.ProcessBuilderImpl.AbstractBuilder.toSource"), // Fix in https://github.com/scala/scala/pull/10435
25-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.sys.process.ProcessBuilderImpl.FileImpl.toSink"), // Fix in https://github.com/scala/scala/pull/10435
26-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.sys.process.ProcessBuilderImpl.FileImpl.toSource"), // Fix in https://github.com/scala/scala/pull/10435
27-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.sys.process.ProcessBuilderImpl.URLImpl.toSource"), // Fix in https://github.com/scala/scala/pull/10435
28-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.concurrent.FailedNode.string"), // Fix in https://github.com/scala/scala/pull/10444
29-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.JavaCollectionWrappers.IterableWrapperTrait.iterator"), // Fix in https://github.com/scala/scala/pull/10435
30-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.JavaCollectionWrappers.IteratorWrapper.remove"), // Fix in https://github.com/scala/scala/pull/10435
31-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.mutable.LinkedHashMap.newBuilder"), // Fix in https://github.com/scala/scala/pull/10435
32-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.mutable.LinkedHashSet.newBuilder"), // Fix in https://github.com/scala/scala/pull/10435
33-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.math.Ordering.tryCompare"), // Fix in https://github.com/scala/scala/pull/10435
34-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.sys.process.ProcessBuilderImpl.AndBuilder.createProcess"), // Fix in https://github.com/scala/scala/pull/10435
35-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.sys.process.ProcessBuilderImpl.OrBuilder.createProcess"), // Fix in https://github.com/scala/scala/pull/10435
36-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.sys.process.ProcessBuilderImpl.PipedBuilder.createProcess"), // Fix in https://github.com/scala/scala/pull/10435
37-
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.sys.process.ProcessBuilderImpl.SequenceBuilder.createProcess"), // Fix in https://github.com/scala/scala/pull/10435
38-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.immutable.BitSet.bitSetFactory"), // Fix in https://github.com/scala/scala/pull/10444
39-
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.BitSet.bitSetFactory"), // Fix in https://github.com/scala/scala/pull/10444
40-
416
// Probably OK
427
ProblemMatcher.make(ProblemKind.IncompatibleSelfTypeChange, "scala.*"),
438

@@ -56,10 +21,6 @@ object TastyMiMaFilters {
5621
// Problem: ConstantType for `null` versus `scala.Null`
5722
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.UnrolledBuffer.Unrolled.<init>$default$4"),
5823

59-
// Problem: Missing type arguments with higher-kinded types
60-
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.SortedSetFactoryDefaults._$5"),
61-
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.SortedMapFactoryDefaults._$6"),
62-
6324
// Problem? Very complicated signature
6425
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.generic.IsMap.mapOpsIsMap"),
6526

@@ -76,8 +37,13 @@ object TastyMiMaFilters {
7637
// Problem Missing setter for `protected var`
7738
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.collection.convert.impl.*_="),
7839

79-
// TASTy-MiMa bug? Wildcards in self type
40+
// Problem: ???
41+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.JavaCollectionWrappers.IterableWrapperTrait.iterator"),
42+
43+
// TASTy-MiMa bug: Wildcards in self type
8044
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.generic.DefaultSerializable._$1"),
45+
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.SortedSetFactoryDefaults._$5"),
46+
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.SortedMapFactoryDefaults._$6"),
8147

8248
// TASTy-MiMa bugs
8349
ProblemMatcher.make(ProblemKind.InternalError, "scala.collection.SeqView.appendedAll"),

0 commit comments

Comments
 (0)