diff --git a/core/src/main/scala/com/typesafe/tools/mima/lib/analyze/Analyzer.scala b/core/src/main/scala/com/typesafe/tools/mima/lib/analyze/Analyzer.scala index 8dc8c419e..3d77b3f6a 100644 --- a/core/src/main/scala/com/typesafe/tools/mima/lib/analyze/Analyzer.scala +++ b/core/src/main/scala/com/typesafe/tools/mima/lib/analyze/Analyzer.scala @@ -27,7 +27,7 @@ object Analyzer { } def analyze(oldclazz: ClassInfo, newclazz: ClassInfo, log: Logging, excludeAnnots: List[AnnotInfo]): List[Problem] = { - if ((if (newclazz.isModuleClass) newclazz.module else newclazz).isScopedPrivate) Nil + if ((if (oldclazz.isModuleClass) oldclazz.module else oldclazz).isScopedPrivate) Nil else { TemplateChecker.check(oldclazz, newclazz) match { case p @ Some(_: IncompatibleTemplateDefProblem | _: CyclicTypeReferenceProblem) => diff --git a/functional-tests/src/test/package-private-class-becomes-ok/app/App.scala b/functional-tests/src/test/package-private-class-becomes-nok/app/App.scala similarity index 64% rename from functional-tests/src/test/package-private-class-becomes-ok/app/App.scala rename to functional-tests/src/test/package-private-class-becomes-nok/app/App.scala index 05e2ddb7c..01494d566 100644 --- a/functional-tests/src/test/package-private-class-becomes-ok/app/App.scala +++ b/functional-tests/src/test/package-private-class-becomes-nok/app/App.scala @@ -1,5 +1,5 @@ object App { def main(args: Array[String]): Unit = { - println(foo.Lib.doIt) + println(new foo.Foo().bar(1)) } } diff --git a/functional-tests/src/test/package-private-class-becomes-nok/problems.txt b/functional-tests/src/test/package-private-class-becomes-nok/problems.txt new file mode 100644 index 000000000..1b67ec269 --- /dev/null +++ b/functional-tests/src/test/package-private-class-becomes-nok/problems.txt @@ -0,0 +1 @@ +method bar(Int)Int in class foo.Foo does not have a correspondent in new version diff --git a/functional-tests/src/test/package-private-class-becomes-nok/v1/A.scala b/functional-tests/src/test/package-private-class-becomes-nok/v1/A.scala new file mode 100644 index 000000000..72fb732aa --- /dev/null +++ b/functional-tests/src/test/package-private-class-becomes-nok/v1/A.scala @@ -0,0 +1,5 @@ +package foo + +class Foo { + def bar(x: Int) = x +} diff --git a/functional-tests/src/test/package-private-class-becomes-ok/v2/A.scala b/functional-tests/src/test/package-private-class-becomes-nok/v2/A.scala similarity index 53% rename from functional-tests/src/test/package-private-class-becomes-ok/v2/A.scala rename to functional-tests/src/test/package-private-class-becomes-nok/v2/A.scala index 4e95cfcc0..197032ae0 100644 --- a/functional-tests/src/test/package-private-class-becomes-ok/v2/A.scala +++ b/functional-tests/src/test/package-private-class-becomes-nok/v2/A.scala @@ -3,8 +3,3 @@ package foo private[foo] class Foo { def bar(x: Int, y: Int) = x + y } - -object Lib { - val foo = new Foo - def doIt = foo.bar(1, 0) -} diff --git a/functional-tests/src/test/package-private-class-becomes-ok/v1/A.scala b/functional-tests/src/test/package-private-class-becomes-ok/v1/A.scala deleted file mode 100644 index 2fcd85797..000000000 --- a/functional-tests/src/test/package-private-class-becomes-ok/v1/A.scala +++ /dev/null @@ -1,10 +0,0 @@ -package foo - -class Foo { - def bar(x: Int) = x -} - -object Lib { - val foo = new Foo - def doIt = foo.bar(1) -} diff --git a/functional-tests/src/test/package-private-class-unbecomes-ok/forwards.txt b/functional-tests/src/test/package-private-class-unbecomes-ok/forwards.txt deleted file mode 100644 index e1ccb83aa..000000000 --- a/functional-tests/src/test/package-private-class-unbecomes-ok/forwards.txt +++ /dev/null @@ -1,3 +0,0 @@ -# Package private is a Scala construct, it doesn't fail in the JVM. -# Users could legitimately use it, not expecting MiMa problems from it. -# We just ignore package private classes/methods/fields. diff --git a/functional-tests/src/test/package-private-class-becomes-ok/problems.txt b/functional-tests/src/test/package-private-class-unbecomes-ok/problems.txt similarity index 100% rename from functional-tests/src/test/package-private-class-becomes-ok/problems.txt rename to functional-tests/src/test/package-private-class-unbecomes-ok/problems.txt diff --git a/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/app/App.scala b/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/app/App.scala new file mode 100644 index 000000000..e1d78b7d3 --- /dev/null +++ b/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/app/App.scala @@ -0,0 +1,5 @@ +object App { + def main(args: Array[String]): Unit = { + println(new bar.A() {}.foo(App)) + } +} diff --git a/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/problems-2.11.txt b/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/problems-2.11.txt new file mode 100644 index 000000000..0afd5b2d8 --- /dev/null +++ b/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/problems-2.11.txt @@ -0,0 +1 @@ +method foo(java.lang.Object)java.lang.Object in trait bar.A does not have a correspondent in new version diff --git a/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/problems.txt b/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/problems.txt new file mode 100644 index 000000000..a8efa0947 --- /dev/null +++ b/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/problems.txt @@ -0,0 +1 @@ +method foo(java.lang.Object)java.lang.Object in interface bar.A does not have a correspondent in new version diff --git a/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/v1/A.scala b/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/v1/A.scala new file mode 100644 index 000000000..6c5728ce7 --- /dev/null +++ b/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/v1/A.scala @@ -0,0 +1,5 @@ +package bar +trait A { + def foo[T](x: T): T = x + def baz[T](x: T): T = x +} diff --git a/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/v2/A.scala b/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/v2/A.scala new file mode 100644 index 000000000..8acb35cd1 --- /dev/null +++ b/functional-tests/src/test/public-trait-loses-method-becomes-package-private-nok/v2/A.scala @@ -0,0 +1,4 @@ +package bar +private[bar] trait A { + def baz[T](x: T): T = x +}