blob: 545a20607b10b7bae643b419943427eacdd94401 [file] [log] [blame]
Dave Borowitz938398f2018-09-14 14:14:25 -07001load(
2 "@bazel_tools//tools/jdk:default_java_toolchain.bzl",
3 "JDK9_JVM_OPTS",
4 "default_java_toolchain",
5)
David Pursehouseb80867d2019-09-08 22:31:37 +09006load("@rules_java//java:defs.bzl", "java_package_configuration")
David Ostrovsky4b60cd72018-08-26 15:53:01 +02007
Han-Wen Nienhuysa223f5a2019-04-25 12:15:41 +02008exports_files(["nongoogle.bzl"])
9
David Ostrovsky4b60cd72018-08-26 15:53:01 +020010default_java_toolchain(
11 name = "error_prone_warnings_toolchain",
David Pursehousea5ca0332018-11-02 08:24:16 +090012 bootclasspath = ["@bazel_tools//tools/jdk:platformclasspath.jar"],
Dave Borowitz938398f2018-09-14 14:14:25 -070013 jvm_opts = JDK9_JVM_OPTS,
David Ostrovsky4b60cd72018-08-26 15:53:01 +020014 package_configuration = [
15 ":error_prone",
16 ],
17 visibility = ["//visibility:public"],
18)
19
David Ostrovskyb89332d2020-04-27 07:06:24 +020020JDK11_JVM_OPTS = select({
21 "@bazel_tools//src/conditions:openbsd": ["-Xbootclasspath/p:$(location @bazel_tools//tools/jdk:javac_jar)"],
22 "//conditions:default": [
23 "--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
24 "--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
25 "--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED",
26 "--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
27 "--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED",
28 "--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
29 "--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
30 "--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
31 "--patch-module=java.compiler=$(location @bazel_tools//tools/jdk:java_compiler_jar)",
32 "--patch-module=jdk.compiler=$(location @bazel_tools//tools/jdk:jdk_compiler_jar)",
33 "--add-opens=java.base/java.nio=ALL-UNNAMED",
34 "--add-opens=java.base/java.lang=ALL-UNNAMED",
35 ],
36})
37
38default_java_toolchain(
39 name = "error_prone_warnings_toolchain_java11",
40 bootclasspath = ["@bazel_tools//tools/jdk:platformclasspath.jar"],
41 forcibly_disable_header_compilation = False,
42 genclass = ["@bazel_tools//tools/jdk:genclass"],
43 header_compiler = ["@bazel_tools//tools/jdk:turbine"],
44 header_compiler_direct = ["@bazel_tools//tools/jdk:turbine_direct"],
45 ijar = ["@bazel_tools//tools/jdk:ijar"],
46 javabuilder = ["@bazel_tools//tools/jdk:javabuilder"],
David Ostrovskyb89332d2020-04-27 07:06:24 +020047 javac_supports_workers = True,
48 jvm_opts = JDK11_JVM_OPTS,
49 misc = [
50 "-XDskipDuplicateBridges=true",
51 "-g",
52 "-parameters",
53 ],
54 package_configuration = [
55 ":error_prone",
56 ],
57 singlejar = ["@bazel_tools//tools/jdk:singlejar"],
58 source_version = "11",
59 target_version = "11",
60 tools = [
61 "@bazel_tools//tools/jdk:java_compiler_jar",
Ivo Listb4d318e2020-11-25 11:19:53 +000062 "@bazel_tools//tools/jdk:javac_jar",
David Ostrovskyb89332d2020-04-27 07:06:24 +020063 "@bazel_tools//tools/jdk:jdk_compiler_jar",
64 ],
65 visibility = ["//visibility:public"],
66)
67
Dave Borowitz3b78c072019-05-24 11:27:43 -070068# Error Prone errors enabled by default; see ../.bazelrc for how this is
69# enabled. This warnings list is originally based on:
70# https://github.com/bazelbuild/BUILD_file_generator/blob/master/tools/bazel_defs/java.bzl
71# However, feel free to add any additional errors. Thus far they have all been pretty useful.
David Ostrovskydfe7d712019-09-14 09:43:13 +020072# TODO(davido): Enable ImmutableAnnotationChecker again when these issues are fixed:
73# https://github.com/google/error-prone/issues/1348
74# https://github.com/bazelbuild/bazel/issues/9378
Dave Borowitzcac46302019-05-24 09:54:18 -070075java_package_configuration(
76 name = "error_prone",
77 javacopts = [
78 "-XepDisableWarningsInGeneratedCode",
Dave Borowitzccdc6702019-05-24 10:14:03 -070079 "-Xep:AmbiguousMethodReference:ERROR",
Edwin Kempinc2d0a912019-07-01 16:10:57 +020080 "-Xep:AutoValueFinalMethods:ERROR",
Dave Borowitzccdc6702019-05-24 10:14:03 -070081 "-Xep:BadAnnotationImplementation:ERROR",
82 "-Xep:BadComparable:ERROR",
83 "-Xep:BoxedPrimitiveConstructor:ERROR",
84 "-Xep:CannotMockFinalClass:ERROR",
Dave Borowitzae99a1b2019-05-24 10:15:40 -070085 "-Xep:ClassCanBeStatic:ERROR",
Dave Borowitzccdc6702019-05-24 10:14:03 -070086 "-Xep:ClassNewInstance:ERROR",
David Pursehousee39b4f42019-06-05 15:23:20 +090087 "-Xep:DateFormatConstant:ERROR",
Dave Borowitz96015722019-05-24 10:16:41 -070088 "-Xep:DefaultCharset:ERROR",
Dave Borowitzccdc6702019-05-24 10:14:03 -070089 "-Xep:DoubleCheckedLocking:ERROR",
90 "-Xep:ElementsCountedInLoop:ERROR",
Dave Borowitz3cf39622019-05-24 10:17:44 -070091 "-Xep:EqualsHashCode:ERROR",
92 "-Xep:EqualsIncompatibleType:ERROR",
93 "-Xep:ExpectedExceptionChecker:ERROR",
94 "-Xep:Finally:ERROR",
Dave Borowitz0c5fdd72019-05-24 10:22:02 -070095 "-Xep:FloatingPointLiteralPrecision:ERROR",
Patrick Hieself396eff2019-11-07 12:01:55 +010096 "-Xep:FormatStringAnnotation:ERROR",
Dave Borowitz0c5fdd72019-05-24 10:22:02 -070097 "-Xep:FragmentInjection:ERROR",
98 "-Xep:FragmentNotInstantiable:ERROR",
99 "-Xep:FunctionalInterfaceClash:ERROR",
Dave Borowitzef04f0e62019-05-24 10:42:22 -0700100 "-Xep:FutureReturnValueIgnored:ERROR",
Dave Borowitzf66892a2019-05-24 10:44:32 -0700101 "-Xep:GetClassOnEnum:ERROR",
David Ostrovskydfe7d712019-09-14 09:43:13 +0200102 "-Xep:ImmutableAnnotationChecker:OFF",
Dave Borowitz0b9e5812019-05-24 10:37:36 -0700103 "-Xep:ImmutableEnumChecker:ERROR",
Dave Borowitz0c5fdd72019-05-24 10:22:02 -0700104 "-Xep:IncompatibleModifiers:ERROR",
105 "-Xep:InjectOnConstructorOfAbstractClass:ERROR",
Dave Borowitzb7769f32019-05-24 10:46:17 -0700106 "-Xep:InputStreamSlowMultibyteRead:ERROR",
107 "-Xep:IterableAndIterator:ERROR",
108 "-Xep:JUnit3FloatingPointComparisonWithoutDelta:ERROR",
109 "-Xep:JUnitAmbiguousTestClass:ERROR",
110 "-Xep:LiteralClassName:ERROR",
111 "-Xep:MissingCasesInEnumSwitch:ERROR",
112 "-Xep:MissingFail:ERROR",
Dave Borowitzdc00c1d2019-05-24 10:48:49 -0700113 "-Xep:MissingOverride:ERROR",
Dave Borowitzb7769f32019-05-24 10:46:17 -0700114 "-Xep:MutableConstantField:ERROR",
Dave Borowitzcd7efe12019-05-24 10:52:43 -0700115 "-Xep:NarrowingCompoundAssignment:ERROR",
Dave Borowitz2bc50b42019-05-24 10:56:59 -0700116 "-Xep:NonAtomicVolatileUpdate:ERROR",
117 "-Xep:NonOverridingEquals:ERROR",
118 "-Xep:NullableConstructor:ERROR",
119 "-Xep:NullablePrimitive:ERROR",
120 "-Xep:NullableVoid:ERROR",
David Pursehousec8ccff92020-04-13 15:07:52 +0900121 "-Xep:ObjectToString:ERROR",
Dave Borowitzb21dde32019-05-24 10:57:09 -0700122 "-Xep:OperatorPrecedence:ERROR",
Dave Borowitz2bc50b42019-05-24 10:56:59 -0700123 "-Xep:OverridesGuiceInjectableMethod:ERROR",
124 "-Xep:PreconditionsInvalidPlaceholder:ERROR",
125 "-Xep:ProtoFieldPreconditionsCheckNotNull:ERROR",
126 "-Xep:ProtocolBufferOrdinal:ERROR",
Dave Borowitzb9640492019-05-24 11:24:32 -0700127 "-Xep:ReferenceEquality:ERROR",
Dave Borowitz425ad6e2019-05-24 11:00:18 -0700128 "-Xep:RequiredModifiers:ERROR",
129 "-Xep:ShortCircuitBoolean:ERROR",
130 "-Xep:SimpleDateFormatConstant:ERROR",
131 "-Xep:StaticGuardedByInstance:ERROR",
Dave Borowitzccdc6702019-05-24 10:14:03 -0700132 "-Xep:StringEquality:ERROR",
Dave Borowitzb13bec92019-05-24 11:16:54 -0700133 "-Xep:SynchronizeOnNonFinalField:ERROR",
Dave Borowitz425ad6e2019-05-24 11:00:18 -0700134 "-Xep:TruthConstantAsserts:ERROR",
135 "-Xep:TypeParameterShadowing:ERROR",
Dave Borowitzb31519f2019-05-24 11:05:18 -0700136 "-Xep:TypeParameterUnusedInFormals:ERROR",
Dave Borowitz425ad6e2019-05-24 11:00:18 -0700137 "-Xep:URLEqualsHashCode:ERROR",
138 "-Xep:UnsynchronizedOverridesSynchronized:ERROR",
David Pursehouse79d0c3a2019-12-02 10:19:17 +0900139 "-Xep:UnusedException:ERROR",
Dave Borowitz425ad6e2019-05-24 11:00:18 -0700140 "-Xep:WaitNotInLoop:ERROR",
Dave Borowitzcac46302019-05-24 09:54:18 -0700141 "-Xep:WildcardImport:ERROR",
142 ],
143 packages = ["error_prone_packages"],
144)
145
David Ostrovsky4b60cd72018-08-26 15:53:01 +0200146package_group(
147 name = "error_prone_packages",
148 packages = [
149 "//java/...",
150 "//javatests/...",
David Pursehousedf7c4812019-05-27 13:29:03 +0900151 "//plugins/codemirror-editor/...",
152 "//plugins/commit-message-length-validator/...",
153 "//plugins/delete-project/...",
154 "//plugins/download-commands/...",
155 "//plugins/gitiles/...",
156 "//plugins/hooks/...",
157 "//plugins/plugin-manager/...",
158 "//plugins/replication/...",
159 "//plugins/reviewnotes/...",
160 "//plugins/singleusergroup/...",
161 "//plugins/webhooks/...",
David Ostrovsky4b60cd72018-08-26 15:53:01 +0200162 ],
163)