summaryrefslogtreecommitdiff
path: root/soong/error_prone.go
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2018-06-01 15:46:12 -0700
committerAndreas Gampe <agampe@google.com>2018-06-06 16:38:54 -0700
commitc653c1195b0a3d0392ba094bc2831cdfb22db4e5 (patch)
tree5c7956525ff817a81a546e1728e7f49201761bb7 /soong/error_prone.go
parentce8219b911658a99cdf4f46c2bb16d65ac6d75e7 (diff)
downloaderror_prone-c653c1195b0a3d0392ba094bc2831cdfb22db4e5.tar.gz
Errorprone: Change error setup
Add ErrorProneChecksWarning. Do not use "-XepAllErrorsAsWarnings." This improves the pickup of new warnings in newer versions, and shows what further options could be enabled. Bug: 72971960 Test: m RUN_ERROR_PRONE=true javac-check Change-Id: Ia4416d941e65ad0b9ba5e23dadf3c304c8df5f10
Diffstat (limited to 'soong/error_prone.go')
-rw-r--r--soong/error_prone.go237
1 files changed, 233 insertions, 4 deletions
diff --git a/soong/error_prone.go b/soong/error_prone.go
index a61e62f..5353528 100644
--- a/soong/error_prone.go
+++ b/soong/error_prone.go
@@ -34,6 +34,7 @@ func init() {
// The checks that are fatal to the build.
config.ErrorProneChecksError = strings.Join([]string{
+ // Errorprone default severity ERROR
"-Xep:AsyncCallableReturnsNull:ERROR",
"-Xep:AsyncFunctionReturnsNull:ERROR",
"-Xep:BundleDeserializationCast:ERROR",
@@ -62,12 +63,12 @@ func init() {
"-Xep:InjectMoreThanOneScopeAnnotationOnClass:ERROR",
"-Xep:InvalidPatternSyntax:ERROR",
"-Xep:IsInstanceOfClass:ERROR",
- "-Xep:JavaxInjectOnAbstractMethod:ERROR",
"-Xep:JUnit3TestNotRun:ERROR",
"-Xep:JUnit4SetUpNotRun:ERROR",
"-Xep:JUnit4TearDownNotRun:ERROR",
"-Xep:JUnit4TestNotRun:ERROR",
"-Xep:JUnitAssertSameCheck:ERROR",
+ "-Xep:JavaxInjectOnAbstractMethod:ERROR",
"-Xep:LiteByteStringUtf8:ERROR",
"-Xep:LoopConditionChecker:ERROR",
"-Xep:MockitoCast:ERROR",
@@ -94,6 +95,235 @@ func init() {
"-Xep:TypeParameterQualifier:ERROR",
"-Xep:UnnecessaryTypeArgument:ERROR",
"-Xep:UnusedAnonymousClass:ERROR",
+ // Errorprone default severity WARNING
+ // Errorprone default severity SUGGESTION
+ }, " ")
+
+ // The checks that are not fatal to the build.
+ config.ErrorProneChecksWarning = strings.Join([]string{
+ // Errorprone default severity ERROR
+ "-Xep:AndroidInjectionBeforeSuper:WARN",
+ "-Xep:ArrayEquals:WARN",
+ "-Xep:ArrayFillIncompatibleType:WARN",
+ "-Xep:ArrayHashCode:WARN",
+ "-Xep:ArrayToString:WARN",
+ "-Xep:ArraysAsListPrimitiveArray:WARN",
+ "-Xep:AutoValueConstructorOrderChecker:WARN",
+ "-Xep:BadShiftAmount:WARN",
+ "-Xep:ComparableType:WARN",
+ "-Xep:ComplexBooleanConstant:WARN",
+ "-Xep:ConditionalExpressionNumericPromotion:WARN",
+ "-Xep:ConstantOverflow:WARN",
+ "-Xep:EqualsReference:WARN",
+ "-Xep:FormatString:WARN",
+ "-Xep:FormatStringAnnotation:WARN",
+ "-Xep:GetClassOnAnnotation:WARN",
+ "-Xep:GetClassOnClass:WARN",
+ "-Xep:GuardedBy:WARN",
+ "-Xep:HashtableContains:WARN",
+ "-Xep:IdentityBinaryExpression:WARN",
+ "-Xep:InexactVarargsConditional:WARN",
+ "-Xep:InvalidTimeZoneID:WARN",
+ "-Xep:IsLoggableTagLength:WARN",
+ "-Xep:JUnit4ClassAnnotationNonStatic:WARN",
+ "-Xep:MislabeledAndroidString:WARN",
+ "-Xep:MissingSuperCall:WARN",
+ "-Xep:MisusedWeekYear:WARN",
+ "-Xep:ModifyingCollectionWithItself:WARN",
+ "-Xep:NCopiesOfChar:WARN",
+ "-Xep:NonRuntimeAnnotation:WARN",
+ "-Xep:NullTernary:WARN",
+ "-Xep:OverridesJavaxInjectableMethod:WARN",
+ "-Xep:PredicateIncompatibleType:WARN",
+ "-Xep:PrivateSecurityContractProtoAccess:WARN",
+ "-Xep:ProtocolBufferOrdinal:WARN",
+ "-Xep:RandomModInteger:WARN",
+ "-Xep:RectIntersectReturnValueIgnored:WARN",
+ "-Xep:ReturnValueIgnored:WARN",
+ "-Xep:SelfComparison:WARN",
+ "-Xep:SelfEquals:WARN",
+ "-Xep:ShouldHaveEvenArgs:WARN",
+ "-Xep:SizeGreaterThanOrEqualsZero:WARN",
+ "-Xep:StreamResourceLeak:WARN",
+ "-Xep:StringBuilderInitWithChar:WARN",
+ "-Xep:TryFailThrowable:WARN",
+ "-Xep:UnusedCollectionModifiedInPlace:WARN",
+
+ // Errorprone default severity WARNING
+ // "-Xep:AmbiguousMethodReference:WARN",
+ // "-Xep:ArgumentSelectionDefectChecker:WARN",
+ // "-Xep:AssertEqualsArgumentOrderChecker:WARN",
+ // "-Xep:AssertionFailureIgnored:WARN",
+ // "-Xep:BadAnnotationImplementation:WARN",
+ // "-Xep:BadComparable:WARN",
+ // "-Xep:BoxedPrimitiveConstructor:WARN",
+ // "-Xep:CannotMockFinalClass:WARN",
+ // "-Xep:CanonicalDuration:WARN",
+ // "-Xep:CatchFail:WARN",
+ // "-Xep:ClassCanBeStatic:WARN",
+ // "-Xep:ClassNewInstance:WARN",
+ // "-Xep:CollectionToArraySafeParameter:WARN",
+ // "-Xep:CollectorShouldNotUseState:WARN",
+ // "-Xep:ComparableAndComparator:WARN",
+ // "-Xep:DateFormatConstant:WARN",
+ // "-Xep:DefaultCharset:WARN",
+ // "-Xep:DoubleCheckedLocking:WARN",
+ // "-Xep:EqualsHashCode:WARN",
+ // "-Xep:EqualsIncompatibleType:WARN",
+ // "-Xep:FallThrough:WARN",
+ // "-Xep:Finally:WARN",
+ // "-Xep:FloatCast:WARN",
+ // "-Xep:FloatingPointLiteralPrecision:WARN",
+ // "-Xep:FragmentInjection:WARN",
+ // "-Xep:FragmentNotInstantiable:WARN",
+ // "-Xep:FutureReturnValueIgnored:WARN",
+ // "-Xep:GetClassOnEnum:WARN",
+ // "-Xep:HidingField:WARN",
+ // "-Xep:ImmutableAnnotationChecker:WARN",
+ // "-Xep:ImmutableEnumChecker:WARN",
+ // "-Xep:IncompatibleModifiers:WARN",
+ // "-Xep:IncrementInForLoopAndHeader:WARN",
+ // "-Xep:InjectOnConstructorOfAbstractClass:WARN",
+ // "-Xep:InputStreamSlowMultibyteRead:WARN",
+ // "-Xep:InstanceOfAndCastMatchWrongType:WARN",
+ // "-Xep:IntLongMath:WARN",
+ // "-Xep:IterableAndIterator:WARN",
+ // "-Xep:JUnit3FloatingPointComparisonWithoutDelta:WARN",
+ // "-Xep:JUnit4ClassUsedInJUnit3:WARN",
+ // "-Xep:JUnitAmbiguousTestClass:WARN",
+ // "-Xep:JavaLangClash:WARN",
+ // "-Xep:JdkObsolete:WARN",
+ // "-Xep:LogicalAssignment:WARN",
+ // "-Xep:MissingCasesInEnumSwitch:WARN",
+ // "-Xep:MissingFail:WARN",
+ // "-Xep:MissingOverride:WARN",
+ // "-Xep:ModifyCollectionInEnhancedForLoop:WARN",
+ // "-Xep:MultipleParallelOrSequentialCalls:WARN",
+ // "-Xep:MutableConstantField:WARN",
+ // "-Xep:NamedParameters:WARN",
+ // "-Xep:NarrowingCompoundAssignment:WARN",
+ // "-Xep:NestedInstanceOfConditions:WARN",
+ // "-Xep:NonAtomicVolatileUpdate:WARN",
+ // "-Xep:NonOverridingEquals:WARN",
+ // "-Xep:NullableConstructor:WARN",
+ // "-Xep:NullablePrimitive:WARN",
+ // "-Xep:NullableVoid:WARN",
+ // "-Xep:OperatorPrecedence:WARN",
+ // "-Xep:OptionalNotPresent:WARN",
+ // "-Xep:OverrideThrowableToString:WARN",
+ // "-Xep:Overrides:WARN",
+ // "-Xep:OverridesGuiceInjectableMethod:WARN",
+ // "-Xep:ParameterName:WARN",
+ // "-Xep:PreconditionsInvalidPlaceholder:WARN",
+ // "-Xep:ProtoFieldPreconditionsCheckNotNull:WARN",
+ // "-Xep:ReachabilityFenceUsage:WARN",
+ // "-Xep:ReferenceEquality:WARN",
+ // "-Xep:RequiredModifiers:WARN",
+ // "-Xep:ShortCircuitBoolean:WARN",
+ // "-Xep:StaticGuardedByInstance:WARN",
+ // "-Xep:StringSplitter:WARN",
+ // "-Xep:SynchronizeOnNonFinalField:WARN",
+ // "-Xep:ThreadJoinLoop:WARN",
+ // "-Xep:ThreadLocalUsage:WARN",
+ // "-Xep:ThreeLetterTimeZoneID:WARN",
+ // "-Xep:TruthConstantAsserts:WARN",
+ // "-Xep:TypeParameterShadowing:WARN",
+ // "-Xep:TypeParameterUnusedInFormals:WARN",
+ // "-Xep:URLEqualsHashCode:WARN",
+ // "-Xep:UnsafeFinalization:WARN",
+ // "-Xep:UnsynchronizedOverridesSynchronized:WARN",
+ // "-Xep:UseCorrectAssertInTests:WARN",
+ // "-Xep:WaitNotInLoop:WARN",
+ // "-Xep:WakelockReleasedDangerously:WARN",
+
+ // Errorprone default severity SUGGESTION
+ }, " ")
+
+ // The checks that are default-disabled and listed for completeness
+ // and simple experiments.
+ config.ErrorProneChecksDefaultDisabled = strings.Join([]string{
+ // Errorprone default severity ERROR
+ // "-Xep:AssistedInjectAndInjectOnSameConstructor:ERROR",
+ // "-Xep:AutoFactoryAtInject:ERROR",
+ // "-Xep:ClassName:ERROR",
+ // "-Xep:ComparisonContractViolated:ERROR",
+ // "-Xep:DepAnn:ERROR",
+ // "-Xep:DivZero:ERROR",
+ // "-Xep:EmptyIf:ERROR",
+ // "-Xep:FuzzyEqualsShouldNotBeUsedInEqualsMethod:ERROR",
+ // "-Xep:InjectInvalidTargetingOnScopingAnnotation:ERROR",
+ // "-Xep:InjectMoreThanOneQualifier:ERROR",
+ // "-Xep:InjectScopeAnnotationOnInterfaceOrAbstractClass:ERROR",
+ // "-Xep:InjectScopeOrQualifierAnnotationRetention:ERROR",
+ // "-Xep:InjectedConstructorAnnotations:ERROR",
+ // "-Xep:InsecureCryptoUsage:ERROR",
+ // "-Xep:IterablePathParameter:ERROR",
+ // "-Xep:JMockTestWithoutRunWithOrRuleAnnotation:ERROR",
+ // "-Xep:JavaxInjectOnFinalField:ERROR",
+ // "-Xep:LockMethodChecker:ERROR",
+ // "-Xep:LongLiteralLowerCaseSuffix:ERROR",
+ // "-Xep:NoAllocation:ERROR",
+ // "-Xep:NumericEquality:ERROR",
+ // "-Xep:ParameterPackage:ERROR",
+ // "-Xep:ProtoStringFieldReferenceEquality:ERROR",
+ // "-Xep:QualifierOrScopeOnInjectMethod:ERROR",
+ // "-Xep:RestrictTo:ERROR",
+ // "-Xep:StaticOrDefaultInterfaceMethod:ERROR",
+ // "-Xep:UnlockMethod:ERROR",
+
+ // Errorprone default severity WARNING
+ // "-Xep:AssertFalse:WARN",
+ // "-Xep:AssistedInjectAndInjectOnConstructors:WARN",
+ // "-Xep:BigDecimalLiteralDouble:WARN",
+ // "-Xep:BinderIdentityRestoredDangerously:WARN",
+ // "-Xep:BindingToUnqualifiedCommonType:WARN",
+ // "-Xep:ConstructorInvokesOverridable:WARN",
+ // "-Xep:ConstructorLeaksThis:WARN",
+ // "-Xep:EmptyTopLevelDeclaration:WARN",
+ // "-Xep:ExpectedExceptionChecker:WARN",
+ // "-Xep:FunctionalInterfaceClash:WARN",
+ // "-Xep:HardCodedSdCardPath:WARN",
+ // "-Xep:InconsistentOverloads:WARN",
+ // "-Xep:MissingDefault:WARN",
+ // "-Xep:MutableMethodReturnType:WARN",
+ // "-Xep:NonCanonicalStaticMemberImport:WARN",
+ // "-Xep:PrimitiveArrayPassedToVarargsMethod:WARN",
+ // "-Xep:ProvidesFix:WARN",
+ // "-Xep:QualifierWithTypeUse:WARN",
+ // "-Xep:RedundantThrows:WARN",
+ // "-Xep:StaticQualifiedUsingExpression:WARN",
+ // "-Xep:StringEquality:WARN",
+ // "-Xep:StringSplit:WARN",
+ // "-Xep:TestExceptionChecker:WARN",
+ // "-Xep:UnnecessaryDefaultInEnumSwitch:WARN",
+ // "-Xep:Var:WARN",
+
+ // Errorprone default severity SUGGESTION
+ // "-Xep:BooleanParameter:SUGGESTION",
+ // "-Xep:ConstantField:SUGGESTION",
+ // "-Xep:EmptySetMultibindingContributions:SUGGESTION",
+ // "-Xep:FieldMissingNullable:SUGGESTION",
+ // "-Xep:LambdaFunctionalInterface:SUGGESTION",
+ // "-Xep:MethodCanBeStatic:SUGGESTION",
+ // "-Xep:MixedArrayDimensions:SUGGESTION",
+ // "-Xep:MultiVariableDeclaration:SUGGESTION",
+ // "-Xep:MultipleTopLevelClasses:SUGGESTION",
+ // "-Xep:MultipleUnaryOperatorsInMethodCall:SUGGESTION",
+ // "-Xep:PackageLocation:SUGGESTION",
+ // "-Xep:ParameterComment:SUGGESTION",
+ // "-Xep:ParameterNotNullable:SUGGESTION",
+ // "-Xep:PrivateConstructorForNoninstantiableModuleTest:SUGGESTION",
+ // "-Xep:PrivateConstructorForUtilityClass:SUGGESTION",
+ // "-Xep:RemoveUnusedImports:SUGGESTION",
+ // "-Xep:ReturnMissingNullable:SUGGESTION",
+ // "-Xep:SwitchDefault:SUGGESTION",
+ // "-Xep:ThrowsUncheckedException:SUGGESTION",
+ // "-Xep:TypeParameterNaming:SUGGESTION",
+ // "-Xep:UngroupedOverloads:SUGGESTION",
+ // "-Xep:UnnecessarySetDefault:SUGGESTION",
+ // "-Xep:UnnecessaryStaticImport:SUGGESTION",
+ // "-Xep:UseBinds:SUGGESTION",
+ // "-Xep:WildcardImport:SUGGESTION",
}, " ")
config.ErrorProneFlags = strings.Join([]string{
@@ -106,10 +336,9 @@ func init() {
"-XDuseStructuralMostSpecificResolution=true",
"-XDuseGraphInference=true",
"-XDandroidCompatible=true",
- "-XepAllErrorsAsWarnings",
// We are not interested in Guava recommendations
- // for String.split.
- "-Xep:StringSplitter:OFF",
+ // for String.split.
+ "-Xep:StringSplitter:OFF",
"-Xmaxwarns 9999999", // As we emit errors as warnings,
// increase the warning limit.
}, " ")