blob: ea6b08fecc804be6449c150b969044311c6af2ae [file] [log] [blame]
JAVA_VERSION_OPTS = []
# A more robust set of lint and errorprone checks when building
# Java source to improve code consistency.
# The bazel errorprone plugin currently only enables default errorChecks
# https://github.com/bazelbuild/bazel/blob/97975603e5ff2247e6bb352e3afd27fea38f108d/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/errorprone/ErrorPronePlugin.java#L52
#
# Default errorChecks are errorprone checkers listed under ENABLED_ERRORS at
# https://github.com/google/error-prone/blob/c6f24bc387989158d99af28e7ae86755e56c5f38/core/src/main/java/com/google/errorprone/scanner/BuiltInCheckerSuppliers.java#L273
#
# Here we enable all available errorprone checks to converge on a consistent
# code style.
# https://github.com/google/error-prone/blob/c6f24bc387989158d99af28e7ae86755e56c5f38/core/src/main/java/com/google/errorprone/scanner/BuiltInCheckerSuppliers.java#L260
# This list is from ENABLED_WARNINGS in
# com/google/errorprone/scanner/BuiltInCheckerSuppliers.java
EP_ENABLED_WARNINGS = [
"-Xep:AmbiguousMethodReference:WARN",
"-Xep:ArgumentSelectionDefectChecker:WARN",
"-Xep:AssertEqualsArgumentOrderChecker:WARN",
"-Xep:BadAnnotationImplementation:WARN",
"-Xep:BadComparable:WARN",
"-Xep:BoxedPrimitiveConstructor:WARN",
"-Xep:CannotMockFinalClass:WARN",
"-Xep:ClassCanBeStatic:WARN",
"-Xep:ClassNewInstance:WARN",
"-Xep:DefaultCharset:WARN",
"-Xep:DoubleCheckedLocking:WARN",
"-Xep:ElementsCountedInLoop:WARN",
"-Xep:EqualsHashCode:WARN",
"-Xep:EqualsIncompatibleType:WARN",
"-Xep:Finally:WARN",
"-Xep:FloatingPointLiteralPrecision:WARN",
"-Xep:FragmentInjection:WARN",
"-Xep:FragmentNotInstantiable:WARN",
"-Xep:FunctionalInterfaceClash:WARN",
"-Xep:FutureReturnValueIgnored:WARN",
"-Xep:GetClassOnEnum:WARN",
"-Xep:ImmutableAnnotationChecker:WARN",
"-Xep:ImmutableEnumChecker:WARN",
"-Xep:IncompatibleModifiers:WARN",
"-Xep:InjectOnConstructorOfAbstractClass:WARN",
"-Xep:InputStreamSlowMultibyteRead:WARN",
"-Xep:IterableAndIterator:WARN",
"-Xep:JavaLangClash:WARN",
"-Xep:JUnit3FloatingPointComparisonWithoutDelta:WARN",
"-Xep:JUnitAmbiguousTestClass:WARN",
"-Xep:LiteralClassName:WARN",
"-Xep:LogicalAssignment:WARN",
"-Xep:MissingFail:WARN",
"-Xep:MissingOverride:WARN",
"-Xep:MutableConstantField:WARN",
"-Xep:NamedParameters:WARN",
"-Xep:NarrowingCompoundAssignment:WARN",
"-Xep:NonAtomicVolatileUpdate:WARN",
"-Xep:NonOverridingEquals:WARN",
"-Xep:NullableConstructor:WARN",
"-Xep:NullablePrimitive:WARN",
"-Xep:NullableVoid:WARN",
"-Xep:OperatorPrecedence:WARN",
"-Xep:OverridesGuiceInjectableMethod:WARN",
"-Xep:PreconditionsInvalidPlaceholder:WARN",
"-Xep:ProtoFieldPreconditionsCheckNotNull:WARN",
"-Xep:ReferenceEquality:WARN",
"-Xep:RequiredModifiers:WARN",
"-Xep:ShortCircuitBoolean:WARN",
"-Xep:SimpleDateFormatConstant:WARN",
"-Xep:StaticGuardedByInstance:WARN",
"-Xep:SynchronizeOnNonFinalField:WARN",
"-Xep:TruthConstantAsserts:WARN",
"-Xep:TypeParameterShadowing:WARN",
"-Xep:TypeParameterUnusedInFormals:WARN",
"-Xep:UnsynchronizedOverridesSynchronized:WARN",
"-Xep:URLEqualsHashCode:WARN",
"-Xep:WaitNotInLoop:WARN",
]
# This list is from DISABLED_CHECKS in
# com/google/errorprone/scanner/BuiltInCheckerSuppliers.java
EP_DISABLED_CHECKS = [
"-Xep:AutoFactoryAtInject:WARN",
"-Xep:AssertFalse:WARN",
"-Xep:AssistedInjectAndInjectOnConstructors:WARN",
"-Xep:AssistedInjectAndInjectOnSameConstructor:WARN",
"-Xep:BigDecimalLiteralDouble:WARN",
"-Xep:BindingToUnqualifiedCommonType:WARN",
"-Xep:ClassName:WARN",
"-Xep:ComparisonContractViolated:WARN",
"-Xep:ConstantField:WARN",
"-Xep:ConstructorInvokesOverridable:WARN",
# False positives, disabled
# "-Xep:ConstructorLeaksThis:WARN",
"-Xep:DepAnn:WARN",
"-Xep:DivZero:WARN",
"-Xep:EmptyIfStatement:WARN",
"-Xep:EmptySetMultibindingContributions:WARN",
"-Xep:EmptyTopLevelDeclaration:WARN",
"-Xep:ExpectedExceptionChecker:WARN",
"-Xep:HardCodedSdCardPath:WARN",
"-Xep:InjectedConstructorAnnotations:WARN",
"-Xep:InvalidTargetingOnScopingAnnotation:WARN",
"-Xep:IterablePathParameter:WARN",
"-Xep:JMockTestWithoutRunWithOrRuleAnnotation:WARN",
"-Xep:JavaxInjectOnFinalField:WARN",
"-Xep:LockMethodChecker:WARN",
"-Xep:LongLiteralLowerCaseSuffix:WARN",
"-Xep:MethodCanBeStatic:WARN",
"-Xep:MissingDefault:WARN",
"-Xep:MixedArrayDimensions:WARN",
"-Xep:MoreThanOneQualifier:WARN",
"-Xep:MultiVariableDeclaration:WARN",
"-Xep:MultipleTopLevelClasses:WARN",
"-Xep:NoAllocationChecker:WARN",
"-Xep:NonCanonicalStaticMemberImport:WARN",
"-Xep:NumericEquality:WARN",
"-Xep:PackageLocation:WARN",
"-Xep:PrimitiveArrayPassedToVarargsMethod:WARN",
"-Xep:PrivateConstructorForUtilityClass:WARN",
"-Xep:PrivateConstructorForNoninstantiableModule:WARN",
"-Xep:ProtoStringFieldReferenceEquality:WARN",
"-Xep:QualifierOrScopeOnInjectMethod:WARN",
"-Xep:QualifierWithTypeUse:WARN",
"-Xep:RedundantThrows:WARN",
"-Xep:RemoveUnusedImports:WARN",
"-Xep:ScopeAnnotationOnInterfaceOrAbstractClass:WARN",
"-Xep:ScopeOrQualifierAnnotationRetention:WARN",
"-Xep:StaticQualifiedUsingExpression:WARN",
"-Xep:StaticOrDefaultInterfaceMethod:WARN",
"-Xep:StringEquality:WARN",
"-Xep:TestExceptionChecker:WARN",
# TODO: stylistic changes in code
# "-Xep:ThrowsUncheckedException:WARN",
# "-Xep:UngroupedOverloads:WARN",
"-Xep:UnlockMethodChecker:WARN",
"-Xep:UnnecessaryDefaultInEnumSwitch:WARN",
"-Xep:UnnecessaryStaticImport:WARN",
"-Xep:UseBinds:WARN",
"-Xep:VarChecker:WARN",
"-Xep:WildcardImport:WARN",
"-Xep:WrongParameterPackage:WARN",
]
EP_OPTS = EP_ENABLED_WARNINGS + EP_DISABLED_CHECKS
JAVACOPTS = JAVA_VERSION_OPTS + EP_OPTS