diff options
| -rw-r--r-- | tools/check-flagged-apis/src/com/android/checkflaggedapis/CheckFlaggedApisTest.kt | 20 | ||||
| -rw-r--r-- | tools/check-flagged-apis/src/com/android/checkflaggedapis/Main.kt | 6 |
2 files changed, 25 insertions, 1 deletions
diff --git a/tools/check-flagged-apis/src/com/android/checkflaggedapis/CheckFlaggedApisTest.kt b/tools/check-flagged-apis/src/com/android/checkflaggedapis/CheckFlaggedApisTest.kt index 111ea91f85..8e285f6216 100644 --- a/tools/check-flagged-apis/src/com/android/checkflaggedapis/CheckFlaggedApisTest.kt +++ b/tools/check-flagged-apis/src/com/android/checkflaggedapis/CheckFlaggedApisTest.kt @@ -121,6 +121,26 @@ class CheckFlaggedApisTest { } @Test + fun testParseApiSignatureInterfacesInheritFromJavaLangObject() { + val apiSignature = + """ + // Signature format: 2.0 + package android { + @FlaggedApi("android.flag.foo") public interface Interface { + } + } + """ + .trim() + val expected = + setOf( + Pair( + Symbol.createClass("android/Interface", "java/lang/Object", setOf()), + Flag("android.flag.foo"))) + val actual = parseApiSignature("in-memory", apiSignature.byteInputStream()) + assertEquals(expected, actual) + } + + @Test fun testParseFlagValues() { val expected: Map<Flag, Boolean> = mapOf(Flag("android.flag.foo") to true, Flag("android.flag.bar") to true) diff --git a/tools/check-flagged-apis/src/com/android/checkflaggedapis/Main.kt b/tools/check-flagged-apis/src/com/android/checkflaggedapis/Main.kt index a277ce815f..1d2440dee8 100644 --- a/tools/check-flagged-apis/src/com/android/checkflaggedapis/Main.kt +++ b/tools/check-flagged-apis/src/com/android/checkflaggedapis/Main.kt @@ -205,7 +205,11 @@ internal fun parseApiSignature(path: String, input: InputStream): Set<Pair<Symbo val symbol = Symbol.createClass( cls.baselineElementId(), - cls.superClass()?.baselineElementId(), + if (cls.isInterface()) { + "java/lang/Object" + } else { + cls.superClass()?.baselineElementId() + }, cls.allInterfaces() .map { it.baselineElementId() } .filter { it != cls.baselineElementId() } |