Support non-migration annotations
Until Android P, the SDK did not contain nullness annotations, so in Android P all annotations were marked as @RecentlyNullable or @RecentlyNonNull. This CL fixes things such that as of master/Q, when a nullness annotation on an API is not new, the annotation is instead mapped to a non-@Migrate annotation as far as the Kotlin compiler is concerned: android.annotation.{NonNull, Nullable}. Also makes some internal annotation processing more efficient. Test: Unit tests included Change-Id: Ia2144b5142cb0ce5e5303a5c72fb9c7c6e3a69d7
Showing
- src/main/java/com/android/tools/metalava/Options.kt 11 additions, 0 deletionssrc/main/java/com/android/tools/metalava/Options.kt
- src/main/java/com/android/tools/metalava/RewriteAnnotations.kt 13 additions, 7 deletions...ain/java/com/android/tools/metalava/RewriteAnnotations.kt
- src/main/java/com/android/tools/metalava/model/AnnotationItem.kt 27 additions, 13 deletions...n/java/com/android/tools/metalava/model/AnnotationItem.kt
- src/test/java/com/android/tools/metalava/ExtractAnnotationsTest.kt 14 additions, 15 deletions...java/com/android/tools/metalava/ExtractAnnotationsTest.kt
- src/test/java/com/android/tools/metalava/NullnessMigrationTest.kt 10 additions, 10 deletions.../java/com/android/tools/metalava/NullnessMigrationTest.kt
- src/test/java/com/android/tools/metalava/StubsTest.kt 66 additions, 2 deletionssrc/test/java/com/android/tools/metalava/StubsTest.kt
- src/test/java/com/android/tools/metalava/SymlinkTest.kt 6 additions, 6 deletionssrc/test/java/com/android/tools/metalava/SymlinkTest.kt
- stub-annotations/src/main/java/android/annotation/NonNull.java 30 additions, 0 deletions...annotations/src/main/java/android/annotation/NonNull.java
- stub-annotations/src/main/java/android/annotation/Nullable.java 30 additions, 0 deletions...nnotations/src/main/java/android/annotation/Nullable.java
Loading
Please register or sign in to comment