diff options
author | Adriaan Moors <adriaan@lightbend.com> | 2016-11-16 23:02:09 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-16 23:02:09 -0800 |
commit | 6b44da1454fa8cce63371c253bd884626249b043 (patch) | |
tree | f5ffdbb6d2194777b3c9e2a1e0f70acc2b43d315 | |
parent | eff3084b06b7d8bb9abdc62ffb13f4780c17dea4 (diff) | |
parent | 98c1f107caad5d5d558e33837023e55b71bb59ea (diff) | |
download | scala-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.conf | 214 | ||||
-rw-r--r-- | bincompat-forward.whitelist.conf | 478 | ||||
-rw-r--r-- | build.sbt | 2 | ||||
-rw-r--r-- | project/MiMa.scala | 8 | ||||
-rw-r--r-- | src/library/scala/collection/mutable/HashTable.scala | 6 | ||||
-rw-r--r-- | src/library/scala/util/Properties.scala | 6 | ||||
-rw-r--r-- | test/junit/scala/util/SpecVersionTest.scala | 11 |
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 } ] } @@ -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")) |