Wire in testOnly bit down to ErrorProneOptions, so it can be used from Checkers. RELNOTES: None PiperOrigin-RevId: 172545302
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/errorprone/ErrorPronePlugin.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/errorprone/ErrorPronePlugin.java index 5e14b3e..c573d33 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/errorprone/ErrorPronePlugin.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/errorprone/ErrorPronePlugin.java
@@ -69,11 +69,23 @@ JavacMessages.instance(context).add("com.google.errorprone.errors"); } + private static final String COMPILING_TEST_ONLY_CODE_ARG = "-XepCompilingTestOnlyCode"; + @Override public List<String> processArgs(List<String> args) throws InvalidCommandLineException { + ImmutableList.Builder<String> epArgs = ImmutableList.<String>builder().addAll(args); // allow javacopts that reference unknown error-prone checks - return processEpOptions( - ImmutableList.<String>builder().addAll(args).add("-XepIgnoreUnknownCheckNames").build()); + epArgs.add("-XepIgnoreUnknownCheckNames"); + if (testOnly()) { + epArgs.add(COMPILING_TEST_ONLY_CODE_ARG); + } + return processEpOptions(epArgs.build()) + // TODO(glorioso): This post-filtering shouldn't be needed except that the bazel dependency + // on error prone doesn't yet know about -XepCompilingTestOnlyCode. + // Remove this once the 3p version is recent enough. + .stream() + .filter(arg -> !arg.equals(COMPILING_TEST_ONLY_CODE_ARG)) + .collect(ImmutableList.toImmutableList()); } private List<String> processEpOptions(List<String> args) throws InvalidCommandLineException {