Merge "Make CHANGED_SCOPE an error instead of a warning"
diff --git a/src/main/java/com/android/tools/metalava/Issues.kt b/src/main/java/com/android/tools/metalava/Issues.kt
index b2ee7fc..55e5be3 100644
--- a/src/main/java/com/android/tools/metalava/Issues.kt
+++ b/src/main/java/com/android/tools/metalava/Issues.kt
@@ -44,7 +44,7 @@
val CHANGED_TYPE = Issue(Severity.WARNING, Category.COMPATIBILITY)
val CHANGED_VALUE = Issue(Severity.WARNING, Category.COMPATIBILITY)
val CHANGED_SUPERCLASS = Issue(Severity.WARNING, Category.COMPATIBILITY)
- val CHANGED_SCOPE = Issue(Severity.WARNING, Category.COMPATIBILITY)
+ val CHANGED_SCOPE = Issue(Severity.ERROR, Category.COMPATIBILITY)
val CHANGED_ABSTRACT = Issue(Severity.WARNING, Category.COMPATIBILITY)
val CHANGED_THROWS = Issue(Severity.WARNING, Category.COMPATIBILITY)
val CHANGED_NATIVE = Issue(Severity.HIDDEN, Category.COMPATIBILITY)
diff --git a/src/test/java/com/android/tools/metalava/CompatibilityCheckTest.kt b/src/test/java/com/android/tools/metalava/CompatibilityCheckTest.kt
index d578242..2b65217 100644
--- a/src/test/java/com/android/tools/metalava/CompatibilityCheckTest.kt
+++ b/src/test/java/com/android/tools/metalava/CompatibilityCheckTest.kt
@@ -3817,6 +3817,26 @@
)
}
+ @Test
+ fun `Changing visibility from public to private`() {
+ check(
+ expectedIssues = """
+ TESTROOT/load-api.txt:2: error: Class test.pkg.Foo changed visibility from public to private [ChangedScope]
+ """.trimIndent(),
+ signatureSource = """
+ package test.pkg {
+ private class Foo {}
+ }
+ """.trimIndent(),
+ format = FileFormat.V4,
+ checkCompatibilityApiReleased = """
+ package test.pkg {
+ public class Foo {}
+ }
+ """.trimIndent()
+ )
+ }
+
// TODO: Check method signatures changing incompatibly (look especially out for adding new overloaded
// methods and comparator getting confused!)
// ..equals on the method items should actually be very useful!