aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCole Faust <colefaust@google.com>2023-11-20 20:20:20 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-11-20 20:20:20 +0000
commit752fa2aeb316d09b66237cef7ba5c331fadac852 (patch)
tree31c0f53a5b5753ba0d238dc96d084a98122f065c
parent21dd832874202086381bc86c7f243d9286fb44cb (diff)
parent574f72f7487d2603c9e441d2c5e7ac0a4c11af45 (diff)
downloadnullaway-752fa2aeb316d09b66237cef7ba5c331fadac852.tar.gz
Fixes for nullaway update am: f9fbf65802 am: 574f72f748
Original change: https://android-review.googlesource.com/c/platform/external/nullaway/+/2831254 Change-Id: Iff8cbee8d789d25307996e6961ba86e257df551c Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--Android.bp30
1 files changed, 29 insertions, 1 deletions
diff --git a/Android.bp b/Android.bp
index 94eb8fc..6e5ef80 100644
--- a/Android.bp
+++ b/Android.bp
@@ -49,7 +49,10 @@ java_plugin {
java_library_host {
name: "nullaway_lib",
- srcs: ["nullaway/src/**/*.java"],
+ srcs: [
+ "nullaway/src/**/*.java",
+ ":nullaway_fake_contract_annotation",
+ ],
exclude_srcs: ["nullaway/src/test/**/*.java"],
@@ -57,6 +60,7 @@ java_library_host {
"guava",
"//external/error_prone:error_prone_checkerframework_dataflow_nullaway",
"//external/error_prone:error_prone_core",
+ "nullaway_annotations",
],
libs: [
@@ -80,3 +84,27 @@ java_library_host {
"--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
],
}
+
+// Nullaway depends on the Contract annotation, but we don't have it imported into android.
+// Create a fake stub annotation to use instead.
+genrule {
+ name: "nullaway_fake_contract_annotation",
+ out: ["org/jetbrains/annotations/Contract.java"],
+ cmd: "echo 'package org.jetbrains.annotations;' >> $(out) && " +
+ "echo 'import java.lang.annotation.*;' >> $(out) && " +
+ "echo '@Retention(RetentionPolicy.CLASS)' >> $(out) && " +
+ "echo '@Target({ElementType.METHOD, ElementType.CONSTRUCTOR})' >> $(out) && " +
+ "echo 'public @interface Contract {' >> $(out) && " +
+ "echo ' String value() default \"\";' >> $(out) && " +
+ "echo '}' >> $(out)",
+ visibility: ["//visibility:private"],
+}
+
+java_library {
+ name: "nullaway_annotations",
+ host_supported: true,
+
+ srcs: [
+ "annotations/src/**/*.java"
+ ],
+}