Skip to content

Commit af8b6a0

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 fef04aa commit af8b6a0

File tree

3 files changed

+19
-96
lines changed

3 files changed

+19
-96
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+
Global / resolvers += "scala-integration" at "https://scala-ci.typesafe.com/artifactory/scala-integration/",
267276
)
268277

269278
lazy val disableDocSetting =

project/MiMaFilters.scala

Lines changed: 2 additions & 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,7 +39,6 @@ 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.*$"),
@@ -79,9 +56,6 @@ object MiMaFilters {
7956
// Scala 2 intrinsic macros
8057
ProblemFilters.exclude[FinalMethodProblem]("scala.StringContext.s"),
8158

82-
// scala.math.Ordering.tryCompare
83-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*.tryCompare"),
84-
8559
// Scala 2 specialization
8660
ProblemFilters.exclude[MissingClassProblem]("scala.*$sp"),
8761
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*$sp"),
@@ -104,7 +78,6 @@ object MiMaFilters {
10478
ProblemFilters.exclude[FinalMethodProblem]("scala.io.Source.NoPositioner"),
10579
ProblemFilters.exclude[FinalMethodProblem]("scala.io.Source.RelaxedPosition"),
10680
ProblemFilters.exclude[FinalMethodProblem]("scala.io.Source.RelaxedPositioner"),
107-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.RedBlackTree#EqualsIterator.nextResult"),
10881
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.SortedMapOps.coll"),
10982
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.TreeMap.empty"),
11083
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.TreeMap.fromSpecific"),
@@ -113,33 +86,23 @@ object MiMaFilters {
11386
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.TreeMap.fromSpecific"),
11487
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NothingManifest.newArray"),
11588
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NullManifest.newArray"),
116-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.StringContext.unapplySeq"),
11789
ProblemFilters.exclude[MissingFieldProblem]("scala.collection.ArrayOps#ReverseIterator.xs"),
11890
ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.NonLocalReturnControl.value"),
11991
ProblemFilters.exclude[ReversedMissingMethodProblem]("scala.collection.immutable.SortedMapOps.coll"),
12092
) ++
12193
Seq( // DirectMissingMethodProblem
122-
"scala.collection.immutable.ArraySeq#*.elemTag",
123-
"scala.collection.immutable.HashCollisionSetNode.copy",
124-
"scala.collection.immutable.MapKeyValueTupleHashIterator.next",
12594
"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",
13095
"scala.collection.mutable.PriorityQueue#ResizableArrayAccess.this",
131-
"scala.collection.StringView.andThen", "scala.collection.StringView.compose",
13296
"scala.concurrent.BatchingExecutor#AbstractBatch.this",
13397
"scala.concurrent.Channel#LinkedList.this",
13498
"scala.Enumeration#ValueOrdering.this",
13599
"scala.io.Source#RelaxedPosition.this",
136-
"scala.PartialFunction#OrElse.andThen", "scala.PartialFunction#OrElse.orElse",
137-
"scala.runtime.Rich*.num", "scala.runtime.Rich*.ord",
100+
"scala.collection.IterableOnceOps#Maximized.this", // New in 2.13.11: private inner class
101+
"scala.collection.StringView.andThen", "scala.collection.StringView.compose",
138102
"scala.ScalaReflectionException.andThen", "scala.ScalaReflectionException.compose",
139103
"scala.UninitializedFieldError.andThen", "scala.UninitializedFieldError.compose",
140104
"scala.util.Properties.<clinit>",
141105
"scala.util.Sorting.scala$util$Sorting$$mergeSort$default$5",
142-
"scala.collection.IterableOnceOps#Maximized.this" // New in 2.13.11: private inner class
143106
).map(ProblemFilters.exclude[DirectMissingMethodProblem])
144107
}
145108
)
@@ -152,19 +115,12 @@ object MiMaFilters {
152115
ProblemFilters.exclude[MissingFieldProblem]("scala.language.experimental"),
153116
ProblemFilters.exclude[MissingFieldProblem]("scala.languageFeature*"),
154117

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-
161118
// https://github.com/scala/scala/blob/v2.13.10/src/library/scala/collection/immutable/Range.scala#LL155C1-L156C1
162119
// Issue #17519: we do not set final on the default methods of final copy method.
163120
ProblemFilters.exclude[FinalMethodProblem]("scala.collection.immutable.Range.copy$default$*"),
164121

165122
// Value class extension methods
166123
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*$extension"),
167-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.*$extension"),
168124

169125
// Companion module class: Missing type java.io.Serializable
170126
ProblemFilters.exclude[MissingTypesProblem]("scala.*$"),
@@ -175,21 +131,13 @@ object MiMaFilters {
175131
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*._3"),
176132
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*._4"),
177133

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-
182134
// Non-categorized
183135
ProblemFilters.exclude[IncompatibleMethTypeProblem]("scala.collection.mutable.ArrayBuilder#ofUnit.addAll"),
184136

185137
// Non-categorized
186-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.RedBlackTree#EqualsIterator.nextResult"),
187138
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"),
190139
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NothingManifest.newArray"),
191140
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NullManifest.newArray"),
192-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.StringContext.unapplySeq"),
193141

194142
// the type hierarchy of class scala.Array is different in other version. Missing types {java.io.Serializable,java.lang.Cloneable}
195143
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

@@ -58,10 +23,6 @@ object TastyMiMaFilters {
5823
// Tested in stdlib-bootstrapped/test/scala/collection/UnrolledBufferTest.scala
5924
ProblemMatcher.make(ProblemKind.IncompatibleTypeChange, "scala.collection.mutable.UnrolledBuffer.Unrolled.<init>$default$4"),
6025

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

@@ -80,8 +41,13 @@ object TastyMiMaFilters {
8041
// Problem Missing setter for `protected var`
8142
ProblemMatcher.make(ProblemKind.NewAbstractMember, "scala.collection.convert.impl.*_="),
8243

83-
// TASTy-MiMa bug? Wildcards in self type
44+
// Problem: ???
45+
ProblemMatcher.make(ProblemKind.MissingTermMember, "scala.collection.convert.JavaCollectionWrappers.IterableWrapperTrait.iterator"),
46+
47+
// TASTy-MiMa bug: Wildcards in self type
8448
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.generic.DefaultSerializable._$1"),
49+
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.SortedSetFactoryDefaults._$5"),
50+
ProblemMatcher.make(ProblemKind.MissingTypeMember, "scala.collection.SortedMapFactoryDefaults._$6"),
8551

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

0 commit comments

Comments
 (0)