blob: 500e1970d84c9357c383c65f4477ea68b7283dc4 [file] [log] [blame]
David Pursehouseb98f9c82018-09-23 12:58:27 +09001load(
2 "@bazel_tools//tools/jdk:default_java_toolchain.bzl",
David Pursehouseb98f9c82018-09-23 12:58:27 +09003 "default_java_toolchain",
4)
David Pursehouse9d46aab2019-09-09 10:52:21 +09005load("@rules_java//java:defs.bzl", "java_package_configuration")
David Pursehouseb98f9c82018-09-23 12:58:27 +09006
7default_java_toolchain(
David Ostrovsky2afae062022-01-08 09:39:06 +01008 name = "error_prone_warnings_toolchain_java11",
David Pursehouseb98f9c82018-09-23 12:58:27 +09009 package_configuration = [
10 ":error_prone",
11 ],
David Ostrovsky3b357632022-05-11 12:42:59 +020012 source_version = "11",
13 target_version = "11",
14 visibility = ["//visibility:public"],
15)
16
17default_java_toolchain(
18 name = "error_prone_warnings_toolchain_java17",
19 configuration = dict(),
20 java_runtime = "@bazel_tools//tools/jdk:remotejdk_17",
21 package_configuration = [
22 ":error_prone",
23 ],
24 source_version = "17",
25 target_version = "17",
David Pursehouseb98f9c82018-09-23 12:58:27 +090026 visibility = ["//visibility:public"],
27)
28
David Pursehouse956bd7d2019-05-25 17:07:28 +090029# Error Prone errors enabled by default; see ../.bazelrc for how this is
30# enabled. This warnings list is originally based on:
David Pursehouseb98f9c82018-09-23 12:58:27 +090031# https://github.com/bazelbuild/BUILD_file_generator/blob/master/tools/bazel_defs/java.bzl
David Pursehouse956bd7d2019-05-25 17:07:28 +090032# However, feel free to add any additional errors. Thus far they have all been pretty useful.
David Pursehouseb98f9c82018-09-23 12:58:27 +090033java_package_configuration(
34 name = "error_prone",
35 javacopts = [
36 "-XepDisableWarningsInGeneratedCode",
David Pursehousec0dafc92019-05-25 17:19:44 +090037 "-Xep:AmbiguousMethodReference:ERROR",
38 "-Xep:BadAnnotationImplementation:ERROR",
39 "-Xep:BadComparable:ERROR",
David Pursehouseb98f9c82018-09-23 12:58:27 +090040 "-Xep:BoxedPrimitiveConstructor:ERROR",
David Pursehousec0dafc92019-05-25 17:19:44 +090041 "-Xep:CannotMockFinalClass:ERROR",
42 "-Xep:ClassCanBeStatic:ERROR",
43 "-Xep:ClassNewInstance:ERROR",
David Pursehoused30ae4c2019-06-05 15:30:37 +090044 "-Xep:DateFormatConstant:ERROR",
David Pursehouse00e3a292018-11-08 11:25:00 +090045 "-Xep:DefaultCharset:ERROR",
David Pursehousec0dafc92019-05-25 17:19:44 +090046 "-Xep:DoubleCheckedLocking:ERROR",
David Pursehousec0dafc92019-05-25 17:19:44 +090047 "-Xep:DoubleCheckedLocking:ERROR",
48 "-Xep:ElementsCountedInLoop:ERROR",
David Pursehouse2e9f8232019-06-05 15:18:01 +090049 "-Xep:ElementsCountedInLoop:ERROR",
David Pursehousec0dafc92019-05-25 17:19:44 +090050 "-Xep:EqualsHashCode:ERROR",
51 "-Xep:EqualsIncompatibleType:ERROR",
52 "-Xep:ExpectedExceptionChecker:ERROR",
53 "-Xep:Finally:ERROR",
54 "-Xep:FloatingPointLiteralPrecision:ERROR",
55 "-Xep:FragmentInjection:ERROR",
56 "-Xep:FragmentNotInstantiable:ERROR",
57 "-Xep:FunctionalInterfaceClash:ERROR",
58 "-Xep:FutureReturnValueIgnored:ERROR",
59 "-Xep:GetClassOnEnum:ERROR",
David Pursehouse5738d522019-06-05 13:40:18 +090060 "-Xep:ImmutableAnnotationChecker:ERROR",
David Pursehouseb98f9c82018-09-23 12:58:27 +090061 "-Xep:ImmutableEnumChecker:WARN",
David Pursehousec0dafc92019-05-25 17:19:44 +090062 "-Xep:IncompatibleModifiers:ERROR",
63 "-Xep:InjectOnConstructorOfAbstractClass:ERROR",
64 "-Xep:InputStreamSlowMultibyteRead:ERROR",
65 "-Xep:IterableAndIterator:ERROR",
66 "-Xep:JUnit3FloatingPointComparisonWithoutDelta:ERROR",
67 "-Xep:JUnitAmbiguousTestClass:ERROR",
68 "-Xep:LiteralClassName:ERROR",
69 "-Xep:MissingCasesInEnumSwitch:ERROR",
70 "-Xep:MissingFail:ERROR",
71 "-Xep:MissingOverride:ERROR",
72 "-Xep:MutableConstantField:ERROR",
73 "-Xep:NarrowingCompoundAssignment:ERROR",
74 "-Xep:NonAtomicVolatileUpdate:ERROR",
75 "-Xep:NonOverridingEquals:ERROR",
76 "-Xep:NullableConstructor:ERROR",
77 "-Xep:NullablePrimitive:ERROR",
78 "-Xep:NullableVoid:ERROR",
79 "-Xep:OperatorPrecedence:ERROR",
80 "-Xep:OverridesGuiceInjectableMethod:ERROR",
81 "-Xep:PreconditionsInvalidPlaceholder:ERROR",
82 "-Xep:ProtoFieldPreconditionsCheckNotNull:ERROR",
83 "-Xep:ProtocolBufferOrdinal:ERROR",
David Pursehouse9b844ae2019-06-05 13:46:59 +090084 "-Xep:ReferenceEquality:ERROR",
David Pursehousec0dafc92019-05-25 17:19:44 +090085 "-Xep:RequiredModifiers:ERROR",
86 "-Xep:ShortCircuitBoolean:ERROR",
87 "-Xep:SimpleDateFormatConstant:ERROR",
88 "-Xep:StaticGuardedByInstance:ERROR",
89 "-Xep:StringEquality:ERROR",
90 "-Xep:SynchronizeOnNonFinalField:ERROR",
91 "-Xep:TruthConstantAsserts:ERROR",
92 "-Xep:TypeParameterShadowing:ERROR",
93 "-Xep:TypeParameterUnusedInFormals:ERROR",
94 "-Xep:URLEqualsHashCode:ERROR",
95 "-Xep:UnsynchronizedOverridesSynchronized:ERROR",
David Ostrovsky1ae7c382020-01-24 08:17:24 +010096 "-Xep:UnusedException:ERROR",
David Pursehousec0dafc92019-05-25 17:19:44 +090097 "-Xep:WaitNotInLoop:ERROR",
98 "-Xep:WildcardImport:ERROR",
David Pursehouseb98f9c82018-09-23 12:58:27 +090099 ],
100 packages = ["error_prone_packages"],
101)
102
103package_group(
104 name = "error_prone_packages",
105 packages = [
106 "//java/...",
107 "//javatests/...",
108 ],
109)