Fix DevSdkIgnoreRule target SDK annotation processing.

The code added to DevSdkIgnoreRule to process the max target SDK
annotations in aosp/2110064 was incorrect. It is trying to match
the annotation name, but ::class.simpleName returns something
like Proxy$3, not the actual name of the annotation. Use
annotationClass.simpleName instead, which actually works.

This was not caught in aosp/2110064 because it contained an even
worse error which broke DevSdkIgnoreRule completely. That was
fixed in aosp/2114653.

Bug: 233553525
Test: LinkPropertiesTest#testExcludedRoutesDisabled passes on user build
Change-Id: If9220e5ef00fafea556604b251b2106d15d063f8
This commit is contained in:
Lorenzo Colitti
2022-06-10 22:51:15 +09:00
parent 46cfe8b811
commit 0d19b66c96

View File

@@ -74,7 +74,7 @@ private fun isDevSdkUpTo(maxInclusive: Int): Boolean {
private fun getMaxTargetSdk(description: Description): Int? {
return description.annotations.firstNotNullOfOrNull {
MAX_TARGET_SDK_ANNOTATION_RE.matcher(it::class.simpleName).let { m ->
MAX_TARGET_SDK_ANNOTATION_RE.matcher(it.annotationClass.simpleName).let { m ->
if (m.find()) m.group(1).toIntOrNull() else null
}
}