diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/BUILD b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/BUILD index ad488fed4466bc..4220116b39e0aa 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/BUILD +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/BUILD @@ -50,6 +50,7 @@ java_library( name = "errorprone", srcs = glob(["errorprone/*.java"]), javacopts = [ + "--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED", "--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED", "--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED", "--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED", 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 ef5bb9c21bb02f..d77f67bb7ebf17 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 @@ -25,10 +25,12 @@ import com.google.errorprone.ErrorProneOptions; import com.google.errorprone.ErrorProneTimings; import com.google.errorprone.InvalidCommandLineOptionException; +import com.google.errorprone.RefactoringCollection; import com.google.errorprone.scanner.BuiltInCheckerSuppliers; import com.google.errorprone.scanner.ScannerSupplier; import com.sun.source.util.TaskEvent; import com.sun.source.util.TaskEvent.Kind; +import com.sun.tools.javac.api.MultiTaskListener; import com.sun.tools.javac.code.DeferredCompletionFailureHandler; import com.sun.tools.javac.comp.AttrContext; import com.sun.tools.javac.comp.Env; @@ -106,8 +108,14 @@ public void init( if (epOptions == null) { epOptions = ErrorProneOptions.empty(); } + RefactoringCollection[] refactoringCollection = {null}; errorProneAnalyzer = - ErrorProneAnalyzer.createByScanningForPlugins(scannerSupplier, epOptions, context); + ErrorProneAnalyzer.createAnalyzer(scannerSupplier, epOptions, context, refactoringCollection); + if (refactoringCollection[0] != null) { + ErrorProneAnalyzer.RefactoringTask refactoringTask = + new ErrorProneAnalyzer.RefactoringTask(context, refactoringCollection[0]); + MultiTaskListener.instance(context).add(refactoringTask); + } timings = ErrorProneTimings.instance(context); deferredCompletionFailureHandler = DeferredCompletionFailureHandler.instance(context); } diff --git a/third_party/BUILD b/third_party/BUILD index c923ef9a8ce739..c0ed6dcea65b42 100644 --- a/third_party/BUILD +++ b/third_party/BUILD @@ -310,11 +310,16 @@ distrib_jar_filegroup( enable_distributions = ["debian"], ) +java_import( + name = "error_prone_check_api_patched", + jars = ["error_prone_check_api_patched/error_prone_check_api-2.22.0.jar"], +) + java_library( name = "error_prone", exports = [ ":error_prone_annotations", - "@maven//:com_google_errorprone_error_prone_check_api", + ":error_prone_check_api_patched", "@maven//:com_google_errorprone_error_prone_core", ], ) diff --git a/third_party/error_prone_check_api_patched/error_prone_check_api-2.22.0.jar b/third_party/error_prone_check_api_patched/error_prone_check_api-2.22.0.jar new file mode 100644 index 00000000000000..0c798b5308719d Binary files /dev/null and b/third_party/error_prone_check_api_patched/error_prone_check_api-2.22.0.jar differ