aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCole Faust <colefaust@google.com>2023-11-14 17:22:04 -0800
committerCole Faust <colefaust@google.com>2023-11-16 15:34:13 -0800
commitf9fbf65802755488d70a3d80b89e08154727e4c0 (patch)
tree31c0f53a5b5753ba0d238dc96d084a98122f065c
parent683dfed77840832ef99b33df54f4dde40d4ead08 (diff)
downloadnullaway-f9fbf65802755488d70a3d80b89e08154727e4c0.tar.gz
Fixes for nullaway update
Bug: 311064136 Test: m RUN_ERROR_PRONE=true javac-check Change-Id: I33bfd234d9567051033d1b2ac3e65be96b84dc80
-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"
+ ],
+}