Skip to content

Commit dad8cd4

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 ae09082 commit dad8cd4

File tree

3 files changed

+15
-91
lines changed

3 files changed

+15
-91
lines changed

project/Build.scala

Lines changed: 11 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+
* Nightly versions: https://scala-ci.typesafe.com/ui/native/scala-integration/org/scala-lang
136+
*/
137+
val stdlibBootstrappedVersion = "2.13.12-bin-364ee69"
132138

133139
val dottyOrganization = "org.scala-lang"
134140
val dottyGithubUrl = "https://github.com/lampepfl/dotty"
@@ -264,6 +270,9 @@ object Build {
264270
// sbt will complain if we don't exclude them here.
265271
Keys.scalaSource, Keys.javaSource
266272
),
273+
274+
// This is used to download nightly builds of the Scala 2 library in `stdlib-bootstrapped`
275+
resolvers += "scala-integration" at "https://scala-ci.typesafe.com/artifactory/scala-integration/",
267276
)
268277

269278
lazy val disableDocSetting =

project/MiMaFilters.scala

Lines changed: 1 addition & 54 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>"),
@@ -61,18 +39,13 @@ object MiMaFilters {
6139

6240
// Value class extension methods
6341
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*$extension"),
64-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.*$extension"),
6542

6643
// Companion module class
6744
ProblemFilters.exclude[FinalClassProblem]("scala.*$"),
6845

6946
// Scala 2 intrinsic macros
7047
ProblemFilters.exclude[FinalMethodProblem]("scala.StringContext.s"),
7148

72-
// scala.math.Ordering.tryCompare
73-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*.tryCompare"),
74-
75-
7649
// Specialization?
7750
ProblemFilters.exclude[MissingFieldProblem]("scala.Tuple1._1"), // field _1 in class scala.Tuple1 does not have a correspondent in current version
7851
ProblemFilters.exclude[MissingFieldProblem]("scala.Tuple2._1"), // field _1 in class scala.Tuple2 does not have a correspondent in current version
@@ -102,7 +75,6 @@ object MiMaFilters {
10275
ProblemFilters.exclude[FinalMethodProblem]("scala.io.Source.NoPositioner"),
10376
ProblemFilters.exclude[FinalMethodProblem]("scala.io.Source.RelaxedPosition"),
10477
ProblemFilters.exclude[FinalMethodProblem]("scala.io.Source.RelaxedPositioner"),
105-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.RedBlackTree#EqualsIterator.nextResult"),
10678
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.SortedMapOps.coll"),
10779
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.TreeMap.empty"),
10880
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.TreeMap.fromSpecific"),
@@ -111,30 +83,20 @@ object MiMaFilters {
11183
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.TreeMap.fromSpecific"),
11284
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NothingManifest.newArray"),
11385
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NullManifest.newArray"),
114-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.StringContext.unapplySeq"),
11586
ProblemFilters.exclude[MissingFieldProblem]("scala.collection.ArrayOps#ReverseIterator.xs"),
11687
ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.NonLocalReturnControl.value"),
11788
ProblemFilters.exclude[ReversedMissingMethodProblem]("scala.collection.immutable.SortedMapOps.coll"),
11889
) ++
11990
Seq( // DirectMissingMethodProblem
120-
"scala.collection.immutable.ArraySeq#*.elemTag",
121-
"scala.collection.immutable.HashCollisionSetNode.copy",
122-
"scala.collection.immutable.MapKeyValueTupleHashIterator.next",
12391
"scala.collection.LinearSeqIterator#LazyCell.this",
124-
"scala.collection.mutable.AnyRefMap#ToBuildFrom.newBuilder",
125-
"scala.collection.mutable.ArraySeq#*.elemTag",
126-
"scala.collection.mutable.LinkedHashMap.newBuilder", "scala.collection.mutable.LinkedHashSet.newBuilder",
127-
"scala.collection.mutable.LongMap#ToBuildFrom.newBuilder",
12892
"scala.collection.mutable.PriorityQueue#ResizableArrayAccess.this",
12993
"scala.concurrent.BatchingExecutor#AbstractBatch.this",
13094
"scala.concurrent.Channel#LinkedList.this",
13195
"scala.Enumeration#ValueOrdering.this",
13296
"scala.io.Source#RelaxedPosition.this",
133-
"scala.PartialFunction#OrElse.andThen", "scala.PartialFunction#OrElse.orElse",
134-
"scala.runtime.Rich*.num", "scala.runtime.Rich*.ord",
97+
"scala.collection.IterableOnceOps#Maximized.this", // New in 2.13.11: private inner class
13598
"scala.util.Properties.<clinit>",
13699
"scala.util.Sorting.scala$util$Sorting$$mergeSort$default$5",
137-
"scala.collection.IterableOnceOps#Maximized.this" // New in 2.13.11: private inner class
138100
).map(ProblemFilters.exclude[DirectMissingMethodProblem])
139101
}
140102
)
@@ -147,38 +109,23 @@ object MiMaFilters {
147109
ProblemFilters.exclude[MissingFieldProblem]("scala.language.experimental"),
148110
ProblemFilters.exclude[MissingFieldProblem]("scala.languageFeature*"),
149111

150-
// Inferred result type of non-private member differs (fix in Scala 2)
151-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JConcurrentMapWrapper.empty"),
152-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JMapWrapper.empty"),
153-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JPropertiesWrapper.empty"),
154-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.math.Ordering.tryCompare"),
155-
156112
// https://github.com/scala/scala/blob/v2.13.10/src/library/scala/collection/immutable/Range.scala#LL155C1-L156C1
157113
// Issue #17519: we do not set final on the default methods of final copy method.
158114
ProblemFilters.exclude[FinalMethodProblem]("scala.collection.immutable.Range.copy$default$*"),
159115

160116
// Value class extension methods
161117
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*$extension"),
162-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.*$extension"),
163118

164119
// Companion module class: Missing type java.io.Serializable
165120
ProblemFilters.exclude[MissingTypesProblem]("scala.*$"),
166121

167-
// abstract method elemTag()scala.reflect.ClassTag in class scala.collection.mutable.ArraySeq does not have a correspondent in other version
168-
ProblemFilters.exclude[DirectAbstractMethodProblem]("scala.collection.immutable.ArraySeq.elemTag"),
169-
ProblemFilters.exclude[DirectAbstractMethodProblem]("scala.collection.mutable.ArraySeq.elemTag"),
170-
171122
// Non-categorized
172123
ProblemFilters.exclude[IncompatibleMethTypeProblem]("scala.collection.mutable.ArrayBuilder#ofUnit.addAll"),
173124

174125
// Non-categorized
175-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.RedBlackTree#EqualsIterator.nextResult"),
176126
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.SortedMapOps.coll"),
177-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.LinkedHashMap.newBuilder"),
178-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.LinkedHashSet.newBuilder"),
179127
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NothingManifest.newArray"),
180128
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NullManifest.newArray"),
181-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.StringContext.unapplySeq"),
182129

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

project/TastyMiMaFilters.scala

Lines changed: 3 additions & 35 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

@@ -67,6 +32,9 @@ object TastyMiMaFilters {
6732
// Problem Missing setter for `protected var`
6833
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.collection.convert.impl.*_="),
6934

35+
// Problem: ???
36+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.JavaCollectionWrappers.IterableWrapperTrait.iterator"),
37+
7038
// TASTy-MiMa bugs
7139
ProblemMatcher.make(ProblemKind.InternalError, "scala.collection.SeqView.appendedAll"),
7240
ProblemMatcher.make(ProblemKind.InternalError, "scala.collection.SeqView.concat"),

0 commit comments

Comments
 (0)