summaryrefslogtreecommitdiff
path: root/bincompat-forward.whitelist.conf
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2013-02-08 15:04:22 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-02-09 18:10:10 -0800
commitaf0da51e1bf81c4ea1a28af227179141604f9dfe (patch)
tree85ceae53a57fde44b96216fb895384a1037a2141 /bincompat-forward.whitelist.conf
parentdb5919a7d3b18be94e79899c2f7e33c535e15a27 (diff)
downloadscala-af0da51e1bf81c4ea1a28af227179141604f9dfe.tar.gz
scala-af0da51e1bf81c4ea1a28af227179141604f9dfe.tar.bz2
scala-af0da51e1bf81c4ea1a28af227179141604f9dfe.zip
[nomaster] run mima both ways, filter out failures
Using @gkossakowski's contribution to mima (in 0.1.5-SNAPSHOT), make sure bc.run doesn't fail by filtering out all binary incompatibilities. Each subsequent commit will comment out the filters it makes irrelevant, until we only need to filter out permitted binary incompatibilities. We only allow binary incompatibilities in scala.reflect.internal.
Diffstat (limited to 'bincompat-forward.whitelist.conf')
-rw-r--r--bincompat-forward.whitelist.conf359
1 files changed, 359 insertions, 0 deletions
diff --git a/bincompat-forward.whitelist.conf b/bincompat-forward.whitelist.conf
new file mode 100644
index 0000000000..28c8a33fa2
--- /dev/null
+++ b/bincompat-forward.whitelist.conf
@@ -0,0 +1,359 @@
+filter {
+ problems=[
+ # rework d526f8bd74 to duplicate tailImpl as a private method
+ {
+ matchName="scala.collection.mutable.MutableList.tailImpl"
+ problemName=MissingMethodProblem
+ },
+ {
+ # can only be called from Stream::distinct, which cannot itself be inlined, so distinct is the only feasible call-site
+ matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$6"
+ problemName=MissingMethodProblem
+ },
+ {
+ # can only be called from Stream::distinct, which cannot itself be inlined, so distinct is the only feasible call-site
+ matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$4"
+ problemName=MissingMethodProblem
+ },
+ {
+ # can only be called from Stream::distinct, which cannot itself be inlined, so distinct is the only feasible call-site
+ matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$5"
+ problemName=MissingMethodProblem
+ },
+ # TODO: revert a557a97360: bridge method appeared because result is now Int but the super-method's result type erases to Object
+ {
+ matchName="scala.collection.immutable.Range.head"
+ problemName=IncompatibleResultTypeProblem
+ },
+ # TODO: revert 0b92073a38 2aa66bec86: SI-4664 [Make scala.util.Random Serializable] Add test case
+ {
+ matchName="scala.util.Random"
+ problemName=MissingTypesProblem
+ },
+ {
+ matchName="scala.util.Random$"
+ problemName=MissingTypesProblem
+ },
+ {
+ # private[concurrent]
+ matchName="scala.concurrent.BatchingExecutor$Batch"
+ problemName=MissingClassProblem
+ },
+ {
+ # private[concurrent]
+ matchName="scala.concurrent.BatchingExecutor"
+ problemName=MissingClassProblem
+ },
+ {
+ # private[concurrent]
+ matchName="scala.concurrent.impl.ExecutionContextImpl$AdaptedForkJoinTask"
+ problemName=MissingClassProblem
+ },
+ {
+ # private[concurrent]
+ matchName="scala.concurrent.impl.ExecutionContextImpl.scala$concurrent$impl$ExecutionContextImpl$$uncaughtExceptionHandler"
+ problemName=MissingMethodProblem
+ },
+ {
+ # private nested class became private top-level class to fix SI-7018
+ matchName="scala.reflect.macros.NonemptyAttachments"
+ problemName=MissingClassProblem
+ },
+
+ # scala.reflect.runtime
+ {
+ matchName="scala.reflect.runtime.JavaMirrors#JavaMirror.scala$reflect$runtime$JavaMirrors$JavaMirror$$jclassAsScala"
+ problemName=IncompatibleResultTypeProblem
+ },
+ {
+ matchName="scala.reflect.runtime.JavaMirrors#JavaMirror.scala$reflect$runtime$JavaMirrors$JavaMirror$$jclassAsScala1"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.runtime.SymbolLoaders.initClassAndModule"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.runtime.SymbolLoaders.initAndEnterClassAndModule"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.runtime.SymbolLoaders.createClassModule"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.runtime.SymbolLoaders.initClassModule"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.runtime.JavaUniverse"
+ problemName=MissingTypesProblem
+ },
+ {
+ matchName="scala.reflect.runtime.JavaUniverse.initClassAndModule"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.runtime.JavaUniverse.initAndEnterClassAndModule"
+ problemName=MissingMethodProblem
+ },
+
+ # scala.reflect.internal
+ {
+ matchName="scala.reflect.internal.Types#Type.dealiasWidenChain"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Types#Type.dealiasWiden"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Types#Type.addThrowsAnnotation"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Types#TypeVar.scala$reflect$internal$Types$TypeVar$$unifySpecific$1"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Types#SubstSymMap.mapTreeSymbols"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Types#SubstSymMap.this"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.PrivateWithin"
+ problemName=MissingClassProblem
+ },
+ {
+ matchName="scala.reflect.internal.TreeInfo$Applied"
+ problemName=MissingClassProblem
+ },
+ {
+ matchName="scala.reflect.internal.AnnotationInfos#Annotatable.addThrowsAnnotation"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Types.inheritsJavaVarArgsMethod"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Types.nonTrivialMembers"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Types.isJavaVarargsAncestor"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Types.normalizeAliases"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Types.nestedMemberType"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Types.deAlias"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.ExistentialsAndSkolems.deskolemizeTypeParams"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.StdAttachments#Attachable.setAttachments"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.AnnotationInfos#AnnotationInfo.completeInfo"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Symbols#Symbol.isCompileTimeOnly"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Symbols#Symbol.addThrowsAnnotation"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Symbols#Symbol.toOption"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Symbols#Symbol.compileTimeOnlyMessage"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Symbols#Symbol.setAttachments"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Symbols#Symbol.addAnnotation"
+ problemName=IncompatibleMethTypeProblem
+ },
+ {
+ matchName="scala.reflect.internal.Trees.DefDef"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Trees$TreeStackTraverser"
+ problemName=MissingClassProblem
+ },
+ {
+ matchName="scala.reflect.internal.Trees#ChangeOwnerTraverser.change"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.AnnotationCheckers$AnnotationChecker"
+ problemName=IncompatibleTemplateDefProblem
+ },
+ {
+ matchName="scala.reflect.internal.TreeInfo$Applied$"
+ problemName=MissingClassProblem
+ },
+ {
+ matchName="scala.reflect.internal.Trees#Tree.setAttachments"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.StdNames#TermNames.DEFAULT_CASE"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.TreeInfo.Applied"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.TreeInfo.isWildcardStarType"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.TreeInfo.isSyntheticDefaultCase"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.TreeInfo.StripCast"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.TreeInfo.dissectApplied"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.TreeInfo.stripCast"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.SymbolTable"
+ problemName=MissingTypesProblem
+ },
+ {
+ matchName="scala.reflect.internal.SymbolTable.StringContextStripMarginOps"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.SymbolTable.inheritsJavaVarArgsMethod"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.SymbolTable.assertCorrectThread"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.SymbolTable.SuppressMacroExpansionAttachment"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.SymbolTable.nonTrivialMembers"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.SymbolTable.isJavaVarargsAncestor"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.SymbolTable.normalizeAliases"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.SymbolTable.DefDef"
+ problemName=IncompatibleMethTypeProblem
+ },
+ {
+ matchName="scala.reflect.internal.SymbolTable.nestedMemberType"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.SymbolTable.importPrivateWithinFromJavaFlags"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.StdAttachments.SuppressMacroExpansionAttachment"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Definitions#DefinitionsClass.ArrayModule_genericApply"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Definitions#DefinitionsClass.allParameters"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Definitions#DefinitionsClass.Predef_wrapArray"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Definitions#DefinitionsClass.dropNullaryMethod"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Definitions#DefinitionsClass.ArrayModule_apply"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Definitions#DefinitionsClass.OptionModule"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Definitions#DefinitionsClass.Option_apply"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.Definitions#DefinitionsClass.CompileTimeOnlyAttr"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.AnnotationInfos#LazyAnnotationInfo.completeInfo"
+ problemName=MissingMethodProblem
+ },
+ {
+ matchName="scala.reflect.internal.util.package"
+ problemName=MissingClassProblem
+ },
+ {
+ matchName="scala.reflect.internal.util.package$"
+ problemName=MissingClassProblem
+ },
+ {
+ matchName="scala.reflect.internal.util.StripMarginInterpolator"
+ problemName=MissingClassProblem
+ },
+ {
+ matchName="scala.reflect.internal.util.package$StringContextStripMarginOps"
+ problemName=MissingClassProblem
+ },
+ {
+ matchName="scala.reflect.internal.annotations.compileTimeOnly"
+ problemName=MissingClassProblem
+ },
+ {
+ matchName="scala.reflect.internal.StdNames#TermNames.SelectFromTypeTree"
+ problemName=MissingMethodProblem
+ }
+ ]
+}