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!