aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCole Faust <colefaust@google.com>2023-11-20 19:47:57 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-11-20 19:47:57 +0000
commit325871542844f25b7523e6fd02ee4551e318d1c9 (patch)
tree31c0f53a5b5753ba0d238dc96d084a98122f065c
parent5af8b817a0d41827b8a8c6d2e5806db997d64177 (diff)
parentf9fbf65802755488d70a3d80b89e08154727e4c0 (diff)
downloadnullaway-325871542844f25b7523e6fd02ee4551e318d1c9.tar.gz
Fixes for nullaway update am: f9fbf65802
Original change: https://android-review.googlesource.com/c/platform/external/nullaway/+/2831254 Change-Id: If0ffedb7a9bb59d8ba5c1b0af1ce1254f501b4c1 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"
+ ],
+}