diff options
author | Cole Faust <colefaust@google.com> | 2023-11-14 17:22:04 -0800 |
---|---|---|
committer | Cole Faust <colefaust@google.com> | 2023-11-16 15:34:13 -0800 |
commit | f9fbf65802755488d70a3d80b89e08154727e4c0 (patch) | |
tree | 31c0f53a5b5753ba0d238dc96d084a98122f065c | |
parent | 683dfed77840832ef99b33df54f4dde40d4ead08 (diff) | |
download | nullaway-f9fbf65802755488d70a3d80b89e08154727e4c0.tar.gz |
Fixes for nullaway update
Bug: 311064136
Test: m RUN_ERROR_PRONE=true javac-check
Change-Id: I33bfd234d9567051033d1b2ac3e65be96b84dc80
-rw-r--r-- | Android.bp | 30 |
1 files changed, 29 insertions, 1 deletions
@@ -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" + ], +} |