summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan@lightbend.com>2016-11-16 23:02:09 -0800
committerGitHub <noreply@github.com>2016-11-16 23:02:09 -0800
commit6b44da1454fa8cce63371c253bd884626249b043 (patch)
treef5ffdbb6d2194777b3c9e2a1e0f70acc2b43d315
parenteff3084b06b7d8bb9abdc62ffb13f4780c17dea4 (diff)
parent98c1f107caad5d5d558e33837023e55b71bb59ea (diff)
downloadscala-6b44da1454fa8cce63371c253bd884626249b043.tar.gz
scala-6b44da1454fa8cce63371c253bd884626249b043.tar.bz2
scala-6b44da1454fa8cce63371c253bd884626249b043.zip
Merge pull request #5532 from retronym/ticket/SD-264
Reinstate MiMa and address problems
-rw-r--r--bincompat-backward.whitelist.conf214
-rw-r--r--bincompat-forward.whitelist.conf478
-rw-r--r--build.sbt2
-rw-r--r--project/MiMa.scala8
-rw-r--r--src/library/scala/collection/mutable/HashTable.scala6
-rw-r--r--src/library/scala/util/Properties.scala6
-rw-r--r--test/junit/scala/util/SpecVersionTest.scala11
7 files changed, 22 insertions, 703 deletions
diff --git a/bincompat-backward.whitelist.conf b/bincompat-backward.whitelist.conf
index 637bd586e0..bb94f4be6c 100644
--- a/bincompat-backward.whitelist.conf
+++ b/bincompat-backward.whitelist.conf
@@ -5,218 +5,14 @@ filter {
# "scala.reflect.runtime"
]
problems=[
- // see SI-8372
{
- matchName="scala.collection.mutable.ArrayOps#ofChar.unzip"
- problemName=IncompatibleMethTypeProblem
+ matchName="scala.reflect.runtime.JavaMirrors#JavaMirror.unpickleClass"
+ problemName=IncompatibleMethTypeProblem
},
{
- matchName="scala.collection.mutable.ArrayOps#ofChar.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofByte.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofByte.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofShort.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofShort.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofLong.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofLong.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofInt.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofInt.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps.unzip"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps.unzip3"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps.unzip"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps.unzip3"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofFloat.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofFloat.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofBoolean.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofBoolean.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofRef.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofRef.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofUnit.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofUnit.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofDouble.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofDouble.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- // see SI-8200
- {
- matchName="scala.reflect.api.StandardLiftables#StandardLiftableInstances.liftTree"
- problemName=MissingMethodProblem
- },
- // see SI-8331
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi#SyntacticTypeAppliedExtractor.unapply"
- problemName=IncompatibleResultTypeProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi#SyntacticTypeAppliedExtractor.unapply"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticSelectType"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticAppliedType"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticSelectTerm"
- problemName=MissingMethodProblem
- },
- // see SI-8366
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticPartialFunction"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Mirror.symbolOf"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Mirror.typeOf"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Mirror.weakTypeOf"
- problemName=MissingMethodProblem
- },
- // see SI-8388
- {
- matchName="scala.reflect.api.Internals$ReificationSupportApi$SyntacticIdentExtractor"
- problemName=MissingClassProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticIdent"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticSingletonType"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticTermIdent"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticTypeIdent"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticCompoundType"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticAnnotatedType"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticTypeProjection"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticExistentialType"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.runtime.SynchronizedOps.newNestedScope"
- problemName=MissingMethodProblem
- },
- // see github.com/scala/scala/pull/3925, SI-8627, SI-6440
- {
- matchName="scala.collection.TraversableLike.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.immutable.Stream.filteredTail"
- problemName=MissingMethodProblem
- },
- // https://github.com/scala/scala/pull/3848 -- SI-8680
- {
- matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$6"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$5"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$4"
- problemName=MissingMethodProblem
- },
- // SI-8946
- {
- matchName="scala.reflect.runtime.ThreadLocalStorage#MyThreadLocalStorage.values"
- problemName=MissingMethodProblem
- },
- // the below method was the unused private (sic!) method but the compatibility checker was complaining about it
- {
- matchName="scala.reflect.io.ZipArchive.scala$reflect$io$ZipArchive$$walkIterator"
- problemName=MissingMethodProblem
+ matchName="scala.reflect.runtime.SymbolLoaders#TopClassCompleter.this"
+ problemName=IncompatibleMethTypeProblem
}
+
]
}
diff --git a/bincompat-forward.whitelist.conf b/bincompat-forward.whitelist.conf
index be4a44c4da..705fa031ab 100644
--- a/bincompat-forward.whitelist.conf
+++ b/bincompat-forward.whitelist.conf
@@ -5,483 +5,13 @@ filter {
# "scala.reflect.runtime"
]
problems=[
- // see SI-8372
{
- matchName="scala.collection.mutable.ArrayOps#ofChar.unzip"
- problemName=IncompatibleMethTypeProblem
+ matchName="scala.reflect.runtime.JavaMirrors#JavaMirror.unpickleClass"
+ problemName=IncompatibleMethTypeProblem
},
{
- matchName="scala.collection.mutable.ArrayOps#ofChar.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofByte.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofByte.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofShort.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofShort.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofLong.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofLong.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofInt.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofInt.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps.unzip"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps.unzip3"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps.unzip"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps.unzip3"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofFloat.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofFloat.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofBoolean.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofBoolean.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofRef.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofRef.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofUnit.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofUnit.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofDouble.unzip"
- problemName=IncompatibleMethTypeProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofDouble.unzip3"
- problemName=IncompatibleMethTypeProblem
- },
- // see SI-8200
- {
- matchName="scala.reflect.api.Liftables#Liftable.liftTree"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.StandardLiftables#StandardLiftableInstances.liftTree"
- problemName=MissingMethodProblem
- },
- // see SI-8331
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticSelectType"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticAppliedType"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticSelectTerm"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals$ReificationSupportApi$SyntacticSelectTermExtractor"
- problemName=MissingClassProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi#SyntacticTypeAppliedExtractor.unapply"
- problemName=IncompatibleResultTypeProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi#SyntacticTypeAppliedExtractor.unapply"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals$ReificationSupportApi$SyntacticSelectTypeExtractor"
- problemName=MissingClassProblem
- },
- // see SI-8366
- {
- matchName="scala.reflect.api.Internals$ReificationSupportApi$SyntacticPartialFunctionExtractor"
- problemName=MissingClassProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticPartialFunction"
- problemName=MissingMethodProblem
- },
- // see SI-8428
- {
- matchName="scala.collection.Iterator#ConcatIterator.this"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Mirror.symbolOf"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Mirror.typeOf"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Mirror.weakTypeOf"
- problemName=MissingMethodProblem
- },
- // see SI-8388
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticSingletonType"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticTermIdent"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticTypeIdent"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticCompoundType"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticAnnotatedType"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticTypeProjection"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticExistentialType"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals#ReificationSupportApi.SyntacticIdent"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.api.Internals$ReificationSupportApi$SyntacticAnnotatedTypeExtractor"
- problemName=MissingClassProblem
- },
- {
- matchName="scala.reflect.api.Internals$ReificationSupportApi$SyntacticTermIdentExtractor"
- problemName=MissingClassProblem
- },
- {
- matchName="scala.reflect.api.Internals$ReificationSupportApi$SyntacitcSingletonTypeExtractor"
- problemName=MissingClassProblem
- },
- {
- matchName="scala.reflect.api.Internals$ReificationSupportApi$SyntacticTypeIdentExtractor"
- problemName=MissingClassProblem
- },
- {
- matchName="scala.reflect.api.Internals$ReificationSupportApi$SyntacticCompoundTypeExtractor"
- problemName=MissingClassProblem
- },
- {
- matchName="scala.reflect.api.Internals$ReificationSupportApi$SyntacticExistentialTypeExtractor"
- problemName=MissingClassProblem
- },
- {
- matchName="scala.reflect.api.Internals$ReificationSupportApi$SyntacticTypeProjectionExtractor"
- problemName=MissingClassProblem
- },
- {
- matchName="scala.reflect.runtime.JavaMirrors#JavaMirror.scala$reflect$runtime$JavaMirrors$JavaMirror$$followStatic"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.runtime.SynchronizedOps.newNestedScope"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.runtime.JavaUniverse"
- problemName=MissingTypesProblem
- },
- {
- matchName="scala.reflect.runtime.JavaUniverse.reporter"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.runtime.JavaUniverse$PerRunReporting"
- problemName=MissingClassProblem
- },
- {
- matchName="scala.reflect.runtime.JavaUniverse.currentRun"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.runtime.JavaUniverse.PerRunReporting"
- problemName=MissingMethodProblem
- },
- // see SI-5919
- {
- matchName="scala.reflect.api.TypeTags$PredefTypeCreator"
- problemName=MissingTypesProblem
- },
- {
- matchName="scala.reflect.api.TreeCreator"
- problemName=MissingTypesProblem
- },
- {
- matchName="scala.reflect.api.TypeCreator"
- problemName=MissingTypesProblem
- },
- {
- matchName="scala.reflect.api.PredefTypeCreator"
- problemName=MissingClassProblem
- },
- // see github.com/scala/scala/pull/3925, SI-8627, SI-6440
- {
- matchName="scala.collection.IterableViewLike#AbstractTransformed.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.AbstractTraversable.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.TraversableViewLike#AbstractTransformed.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.TraversableLike.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.SeqViewLike#AbstractTransformed.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.immutable.TreeSet.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.immutable.Stream.filteredTail"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.immutable.Stream.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.immutable.Stream.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.immutable.StringOps.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.immutable.TreeMap.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.concurrent.TrieMap.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofByte.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofLong.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofUnit.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofInt.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofChar.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofRef.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofDouble.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofFloat.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofBoolean.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.ArrayOps#ofShort.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.mutable.TreeSet.filterImpl"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.io.AbstractFile.filterImpl"
- problemName=MissingMethodProblem
- },
- // https://github.com/scala/scala/pull/3848 -- SI-8680
- {
- matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$6"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$5"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$4"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$3"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$2"
- problemName=MissingMethodProblem
- },
- // changes needed by ZipArchiveFileLookup (the flat classpath representation)
- {
- matchName="scala.reflect.io.FileZipArchive.allDirs"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.io.FileZipArchive.root"
- problemName=MissingMethodProblem
- },
- // introduced the harmless method (instead of the repeated code in several places)
- {
- matchName="scala.reflect.runtime.Settings#MultiStringSetting.valueSetByUser"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.runtime.Settings#BooleanSetting.valueSetByUser"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.reflect.runtime.Settings#IntSetting.valueSetByUser"
- problemName=MissingMethodProblem
- },
- // SI-9059
- {
- matchName="scala.util.Random.scala$util$Random$$nextAlphaNum$1"
- problemName=MissingMethodProblem
- },
- // Nominally private but in practice JVM-visible methods for reworked scala.util.Sorting
- {
- matchName="scala.util.Sorting.scala$util$Sorting$$mergeSort$default$5"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.util.Sorting.scala$util$Sorting$$mergeSort$mBc$sp"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.util.Sorting.scala$util$Sorting$$mergeSort$mFc$sp"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.util.Sorting.scala$util$Sorting$$mergeSort$mJc$sp"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.util.Sorting.scala$util$Sorting$$mergeSort"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.util.Sorting.scala$util$Sorting$$mergeSort$mCc$sp"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.util.Sorting.scala$util$Sorting$$mergeSort$mSc$sp"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.util.Sorting.scala$util$Sorting$$insertionSort"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.util.Sorting.scala$util$Sorting$$mergeSort$mZc$sp"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.util.Sorting.scala$util$Sorting$$mergeSort$mDc$sp"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.util.Sorting.scala$util$Sorting$$mergeSort$mIc$sp"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.util.Sorting.scala$util$Sorting$$mergeSorted"
- problemName=MissingMethodProblem
- },
- {
- matchName="scala.util.Sorting.scala$util$Sorting$$booleanSort"
- problemName=MissingMethodProblem
- },
- // SI-8362: AbstractPromise extends AtomicReference
- // It's ok to change a package-protected class in an impl package,
- // even though it's not clear why it changed -- bug in generic signature generation?
- // -public class scala.concurrent.impl.Promise$DefaultPromise<T> extends scala.concurrent.impl.AbstractPromise implements scala.concurrent.impl.Promise<T>
- // +public class scala.concurrent.impl.Promise$DefaultPromise<T extends java.lang.Object> extends scala.concurrent.impl.AbstractPromise implements scala.concurrent.impl.Promise<T>
- {
- matchName="scala.concurrent.impl.Promise$DefaultPromise"
- problemName=MissingTypesProblem
- },
- {
- matchName="scala.reflect.runtime.Settings.YpartialUnification"
- problemName=MissingMethodProblem
+ matchName="scala.reflect.runtime.SymbolLoaders#TopClassCompleter.this"
+ problemName=IncompatibleMethTypeProblem
}
]
}
diff --git a/build.sbt b/build.sbt
index 70680d2626..2e5cafc37e 100644
--- a/build.sbt
+++ b/build.sbt
@@ -89,7 +89,7 @@ lazy val publishSettings : Seq[Setting[_]] = Seq(
globalVersionSettings
baseVersion in Global := "2.12.1"
baseVersionSuffix in Global := "SNAPSHOT"
-mimaReferenceVersion in Global := Some("2.12.0-RC1")
+mimaReferenceVersion in Global := Some("2.12.0")
scalaVersion in Global := versionProps("starr.version")
diff --git a/project/MiMa.scala b/project/MiMa.scala
index 6c6f5efd51..8963699c17 100644
--- a/project/MiMa.scala
+++ b/project/MiMa.scala
@@ -24,7 +24,7 @@ object MiMa {
def runOnce(prev: java.io.File, curr: java.io.File, isForward: Boolean): Unit = {
val direction = if (isForward) "forward" else "backward"
log.info(s"Checking $direction binary compatibility")
- log.debug(s"prev = $prev, curr = $curr")
+ log.info(s"prev = $prev, curr = $curr")
runMima(
prev = if (isForward) curr else prev,
curr = if (isForward) prev else curr,
@@ -48,7 +48,11 @@ object MiMa {
"--prev", prev.getAbsolutePath,
"--curr", curr.getAbsolutePath,
"--filters", filter.getAbsolutePath,
- "--generate-filters"
+ "--generate-filters",
+ // !!! Command line MiMa (which we call rathan the SBT Plugin for reasons alluded to in f2d0f1e85) incorrectly
+ // defaults to no checking (!) if this isn't specified. Fixed in https://github.com/typesafehub/migration-manager/pull/138
+ // TODO: Try out the new "--direction both" mode of MiMa
+ "--direction", "backwards"
)
val exitCode = TrapExit(com.typesafe.tools.mima.cli.Main.main(args), log)
if (exitCode != 0)
diff --git a/src/library/scala/collection/mutable/HashTable.scala b/src/library/scala/collection/mutable/HashTable.scala
index bd6fb508fe..a6a6e1e432 100644
--- a/src/library/scala/collection/mutable/HashTable.scala
+++ b/src/library/scala/collection/mutable/HashTable.scala
@@ -396,11 +396,11 @@ private[collection] object HashTable {
/** The load factor for the hash table (in 0.001 step).
*/
private[collection] final def defaultLoadFactor: Int = 750 // corresponds to 75%
- private[collection] final def loadFactorDenom = 1000
+ private[collection] final def loadFactorDenum = 1000 // should be loadFactorDenom, but changing that isn't binary compatible
- private[collection] final def newThreshold(_loadFactor: Int, size: Int) = ((size.toLong * _loadFactor) / loadFactorDenom).toInt
+ private[collection] final def newThreshold(_loadFactor: Int, size: Int) = ((size.toLong * _loadFactor) / loadFactorDenum).toInt
- private[collection] final def sizeForThreshold(_loadFactor: Int, thr: Int) = ((thr.toLong * loadFactorDenom) / _loadFactor).toInt
+ private[collection] final def sizeForThreshold(_loadFactor: Int, thr: Int) = ((thr.toLong * loadFactorDenum) / _loadFactor).toInt
private[collection] final def capacity(expectedSize: Int) = if (expectedSize == 0) 1 else powerOfTwo(expectedSize)
diff --git a/src/library/scala/util/Properties.scala b/src/library/scala/util/Properties.scala
index 9d62bfe6ef..7b21351cf6 100644
--- a/src/library/scala/util/Properties.scala
+++ b/src/library/scala/util/Properties.scala
@@ -217,12 +217,6 @@ private[scala] trait PropertiesTrait {
}
}
- /** Tests whether the major version of the platform specification is at least the given value.
- *
- * @param version a major version number
- */
- def isJavaAtLeast(version: Int): Boolean = isJavaAtLeast(version.toString)
-
// provide a main method so version info can be obtained by running this
def main(args: Array[String]) {
val writer = new PrintWriter(Console.err, true)
diff --git a/test/junit/scala/util/SpecVersionTest.scala b/test/junit/scala/util/SpecVersionTest.scala
index 4639389dd9..82fc4fdf7b 100644
--- a/test/junit/scala/util/SpecVersionTest.scala
+++ b/test/junit/scala/util/SpecVersionTest.scala
@@ -33,8 +33,6 @@ class SpecVersionTest {
assert(sut9 isJavaAtLeast "1.8")
assert(sut9 isJavaAtLeast "8")
assert(sut9 isJavaAtLeast "9")
- assert(sut9.isJavaAtLeast(9))
- assertFalse(sut9.isJavaAtLeast(10))
assertFalse(sut9.isJavaAtLeast("10"))
}
@@ -47,8 +45,8 @@ class SpecVersionTest {
assert(sut7 isJavaAtLeast "5")
assert(sut7 isJavaAtLeast "1.6")
assert(sut7 isJavaAtLeast "1.7")
- assert(sut7.isJavaAtLeast(7))
- assertFalse(sut7.isJavaAtLeast(9))
+ assert(sut7.isJavaAtLeast("7"))
+ assertFalse(sut7.isJavaAtLeast("9"))
assertFalse(sut7 isJavaAtLeast "1.8")
assertFalse(sut7 isJavaAtLeast "9")
assertFalse(sut7 isJavaAtLeast "10")
@@ -69,7 +67,6 @@ class SpecVersionTest {
@Test def `spec has minor or more`(): Unit = {
val sut = new TestProperties("9.2.5")
- assert(sut.isJavaAtLeast(9))
assert(sut.isJavaAtLeast("9"))
assert(sut.isJavaAtLeast("9.0.1"))
assert(sut.isJavaAtLeast("9.2.1"))
@@ -81,7 +78,6 @@ class SpecVersionTest {
@Test def `compares only major minor security`(): Unit = {
val sut = new TestProperties("9.2.5.1.2.3")
- assert(sut.isJavaAtLeast(9))
assert(sut.isJavaAtLeast("9"))
assert(sut.isJavaAtLeast("9.0.1"))
assert(sut.isJavaAtLeast("9.2.5.9.9.9"))
@@ -90,8 +86,7 @@ class SpecVersionTest {
@Test def `futurely proofed`(): Unit = {
val sut = new TestProperties("10.2.5")
- assert(sut.isJavaAtLeast(9))
- assert(sut.isJavaAtLeast(10))
+ assert(sut.isJavaAtLeast("10"))
assert(sut.isJavaAtLeast("9"))
assert(sut.isJavaAtLeast("9.0.1"))
assert(sut.isJavaAtLeast("9.2.1"))