|
|
|
load(
|
|
|
|
"@bazel_tools//tools/jdk:default_java_toolchain.bzl",
|
|
|
|
"JDK9_JVM_OPTS",
|
|
|
|
"default_java_toolchain",
|
|
|
|
)
|
|
|
|
load("@rules_java//java:defs.bzl", "java_package_configuration")
|
|
|
|
|
|
|
|
default_java_toolchain(
|
|
|
|
name = "error_prone_warnings_toolchain",
|
|
|
|
bootclasspath = ["@bazel_tools//tools/jdk:platformclasspath.jar"],
|
|
|
|
jvm_opts = JDK9_JVM_OPTS,
|
|
|
|
package_configuration = [
|
|
|
|
":error_prone",
|
|
|
|
],
|
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
|
|
|
# Error Prone errors enabled by default; see ../.bazelrc for how this is
|
|
|
|
# enabled. This warnings list is originally based on:
|
|
|
|
# https://github.com/bazelbuild/BUILD_file_generator/blob/master/tools/bazel_defs/java.bzl
|
|
|
|
# However, feel free to add any additional errors. Thus far they have all been pretty useful.
|
|
|
|
java_package_configuration(
|
|
|
|
name = "error_prone",
|
|
|
|
javacopts = [
|
|
|
|
"-XepDisableWarningsInGeneratedCode",
|
|
|
|
"-Xep:MissingCasesInEnumSwitch:ERROR",
|
|
|
|
"-Xep:ReferenceEquality:WARN",
|
|
|
|
"-Xep:StringEquality:WARN",
|
|
|
|
"-Xep:WildcardImport:ERROR",
|
|
|
|
"-Xep:AmbiguousMethodReference:WARN",
|
|
|
|
"-Xep:BadAnnotationImplementation:ERROR",
|
|
|
|
"-Xep:BadComparable:WARN",
|
|
|
|
"-Xep:BoxedPrimitiveConstructor:ERROR",
|
|
|
|
"-Xep:CannotMockFinalClass:ERROR",
|
|
|
|
"-Xep:ClassCanBeStatic:ERROR",
|
|
|
|
"-Xep:ClassNewInstance:WARN",
|
|
|
|
"-Xep:DefaultCharset:ERROR",
|
|
|
|
"-Xep:DoubleCheckedLocking:ERROR",
|
|
|
|
"-Xep:ElementsCountedInLoop:ERROR",
|
|
|
|
"-Xep:EqualsHashCode:ERROR",
|
|
|
|
"-Xep:EqualsIncompatibleType:ERROR",
|
|
|
|
"-Xep:ExpectedExceptionChecker:ERROR",
|
|
|
|
"-Xep:Finally:WARN",
|
|
|
|
"-Xep:FloatingPointLiteralPrecision:ERROR",
|
|
|
|
"-Xep:FragmentInjection:ERROR",
|
|
|
|
"-Xep:FragmentNotInstantiable:ERROR",
|
|
|
|
"-Xep:FunctionalInterfaceClash:ERROR",
|
|
|
|
"-Xep:FutureReturnValueIgnored:WARN",
|
|
|
|
"-Xep:GetClassOnEnum:ERROR",
|
|
|
|
"-Xep:ImmutableAnnotationChecker:ERROR",
|
|
|
|
"-Xep:ImmutableEnumChecker:WARN",
|
|
|
|
"-Xep:IncompatibleModifiers:ERROR",
|
|
|
|
"-Xep:InjectOnConstructorOfAbstractClass:ERROR",
|
|
|
|
"-Xep:InputStreamSlowMultibyteRead:ERROR",
|
|
|
|
"-Xep:IterableAndIterator:ERROR",
|
|
|
|
"-Xep:JUnit3FloatingPointComparisonWithoutDelta:ERROR",
|
|
|
|
"-Xep:JUnitAmbiguousTestClass:ERROR",
|
|
|
|
"-Xep:LiteralClassName:ERROR",
|
|
|
|
"-Xep:MissingFail:ERROR",
|
|
|
|
"-Xep:MissingOverride:ERROR",
|
|
|
|
"-Xep:MutableConstantField:ERROR",
|
|
|
|
"-Xep:NarrowingCompoundAssignment:WARN",
|
|
|
|
"-Xep:NonAtomicVolatileUpdate:ERROR",
|
|
|
|
"-Xep:NonOverridingEquals:WARN",
|
|
|
|
"-Xep:NullableConstructor:ERROR",
|
|
|
|
"-Xep:NullablePrimitive:ERROR",
|
|
|
|
"-Xep:NullableVoid:ERROR",
|
|
|
|
"-Xep:OperatorPrecedence:WARN",
|
|
|
|
"-Xep:OverridesGuiceInjectableMethod:ERROR",
|
|
|
|
"-Xep:PreconditionsInvalidPlaceholder:ERROR",
|
|
|
|
"-Xep:ProtoFieldPreconditionsCheckNotNull:ERROR",
|
|
|
|
"-Xep:ProtocolBufferOrdinal:ERROR",
|
|
|
|
"-Xep:RequiredModifiers:ERROR",
|
|
|
|
"-Xep:ShortCircuitBoolean:WARN",
|
|
|
|
"-Xep:SimpleDateFormatConstant:ERROR",
|
|
|
|
"-Xep:StaticGuardedByInstance:ERROR",
|
|
|
|
"-Xep:SynchronizeOnNonFinalField:ERROR",
|
|
|
|
"-Xep:TruthConstantAsserts:ERROR",
|
|
|
|
"-Xep:TypeParameterShadowing:ERROR",
|
|
|
|
"-Xep:TypeParameterUnusedInFormals:WARN",
|
|
|
|
"-Xep:URLEqualsHashCode:ERROR",
|
|
|
|
"-Xep:UnsynchronizedOverridesSynchronized:ERROR",
|
|
|
|
"-Xep:WaitNotInLoop:ERROR",
|
|
|
|
],
|
|
|
|
packages = ["error_prone_packages"],
|
|
|
|
)
|
|
|
|
|
|
|
|
package_group(
|
|
|
|
name = "error_prone_packages",
|
|
|
|
packages = [
|
|
|
|
"//org.eclipse.jgit.ant.test/...",
|
|
|
|
"//org.eclipse.jgit.ant/...",
|
|
|
|
"//org.eclipse.jgit.archive/...",
|
|
|
|
"//org.eclipse.jgit.http.apache/...",
|
|
|
|
"//org.eclipse.jgit.http.server/...",
|
|
|
|
"//org.eclipse.jgit.http.test/...",
|
|
|
|
"//org.eclipse.jgit.junit.http/...",
|
|
|
|
"//org.eclipse.jgit.junit/...",
|
|
|
|
"//org.eclipse.jgit.lfs.server.test/...",
|
|
|
|
"//org.eclipse.jgit.lfs.server/...",
|
|
|
|
"//org.eclipse.jgit.lfs.test/...",
|
|
|
|
"//org.eclipse.jgit.lfs/...",
|
|
|
|
"//org.eclipse.jgit.packaging/...",
|
|
|
|
"//org.eclipse.jgit.pgm.test/...",
|
|
|
|
"//org.eclipse.jgit.pgm/...",
|
|
|
|
"//org.eclipse.jgit.test/...",
|
|
|
|
"//org.eclipse.jgit.ui/...",
|
|
|
|
"//org.eclipse.jgit/...",
|
|
|
|
],
|
|
|
|
)
|