/*
* Copyright 2014 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.errorprone.scanner;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.errorprone.BugCheckerInfo;
import com.google.errorprone.bugpatterns.AmbiguousMethodReference;
import com.google.errorprone.bugpatterns.ArrayEquals;
import com.google.errorprone.bugpatterns.ArrayHashCode;
import com.google.errorprone.bugpatterns.ArrayToString;
import com.google.errorprone.bugpatterns.ArraysAsListPrimitiveArray;
import com.google.errorprone.bugpatterns.AssertFalse;
import com.google.errorprone.bugpatterns.AsyncCallableReturnsNull;
import com.google.errorprone.bugpatterns.AsyncFunctionReturnsNull;
import com.google.errorprone.bugpatterns.BadAnnotationImplementation;
import com.google.errorprone.bugpatterns.BadComparable;
import com.google.errorprone.bugpatterns.BadShiftAmount;
import com.google.errorprone.bugpatterns.BigDecimalLiteralDouble;
import com.google.errorprone.bugpatterns.BoxedPrimitiveConstructor;
import com.google.errorprone.bugpatterns.BugChecker;
import com.google.errorprone.bugpatterns.CannotMockFinalClass;
import com.google.errorprone.bugpatterns.ChainingConstructorIgnoresParameter;
import com.google.errorprone.bugpatterns.CheckReturnValue;
import com.google.errorprone.bugpatterns.ClassCanBeStatic;
import com.google.errorprone.bugpatterns.ClassName;
import com.google.errorprone.bugpatterns.ClassNewInstance;
import com.google.errorprone.bugpatterns.ComparisonContractViolated;
import com.google.errorprone.bugpatterns.ComparisonOutOfRange;
import com.google.errorprone.bugpatterns.CompileTimeConstantChecker;
import com.google.errorprone.bugpatterns.ConstantField;
import com.google.errorprone.bugpatterns.ConstantOverflow;
import com.google.errorprone.bugpatterns.ConstructorInvokesOverridable;
import com.google.errorprone.bugpatterns.ConstructorLeaksThis;
import com.google.errorprone.bugpatterns.DeadException;
import com.google.errorprone.bugpatterns.DefaultCharset;
import com.google.errorprone.bugpatterns.DepAnn;
import com.google.errorprone.bugpatterns.DivZero;
import com.google.errorprone.bugpatterns.DoNotCallChecker;
import com.google.errorprone.bugpatterns.ElementsCountedInLoop;
import com.google.errorprone.bugpatterns.EmptyIfStatement;
import com.google.errorprone.bugpatterns.EmptyTopLevelDeclaration;
import com.google.errorprone.bugpatterns.EqualsHashCode;
import com.google.errorprone.bugpatterns.EqualsIncompatibleType;
import com.google.errorprone.bugpatterns.EqualsNaN;
import com.google.errorprone.bugpatterns.ExpectedExceptionChecker;
import com.google.errorprone.bugpatterns.FallThrough;
import com.google.errorprone.bugpatterns.FilesLinesLeak;
import com.google.errorprone.bugpatterns.Finally;
import com.google.errorprone.bugpatterns.FloatingPointLiteralPrecision;
import com.google.errorprone.bugpatterns.ForOverrideChecker;
import com.google.errorprone.bugpatterns.FunctionalInterfaceClash;
import com.google.errorprone.bugpatterns.FunctionalInterfaceMethodChanged;
import com.google.errorprone.bugpatterns.FutureReturnValueIgnored;
import com.google.errorprone.bugpatterns.FuturesGetCheckedIllegalExceptionType;
import com.google.errorprone.bugpatterns.GetClassOnAnnotation;
import com.google.errorprone.bugpatterns.GetClassOnClass;
import com.google.errorprone.bugpatterns.GetClassOnEnum;
import com.google.errorprone.bugpatterns.HashtableContains;
import com.google.errorprone.bugpatterns.IdentityBinaryExpression;
import com.google.errorprone.bugpatterns.ImmutableModification;
import com.google.errorprone.bugpatterns.IncompatibleModifiersChecker;
import com.google.errorprone.bugpatterns.IndexOfChar;
import com.google.errorprone.bugpatterns.InfiniteRecursion;
import com.google.errorprone.bugpatterns.InputStreamSlowMultibyteRead;
import com.google.errorprone.bugpatterns.InsecureCipherMode;
import com.google.errorprone.bugpatterns.InvalidPatternSyntax;
import com.google.errorprone.bugpatterns.InvalidTimeZoneID;
import com.google.errorprone.bugpatterns.IsInstanceOfClass;
import com.google.errorprone.bugpatterns.IterableAndIterator;
import com.google.errorprone.bugpatterns.IterablePathParameter;
import com.google.errorprone.bugpatterns.JMockTestWithoutRunWithOrRuleAnnotation;
import com.google.errorprone.bugpatterns.JUnit3FloatingPointComparisonWithoutDelta;
import com.google.errorprone.bugpatterns.JUnit3TestNotRun;
import com.google.errorprone.bugpatterns.JUnit4SetUpNotRun;
import com.google.errorprone.bugpatterns.JUnit4TearDownNotRun;
import com.google.errorprone.bugpatterns.JUnit4TestNotRun;
import com.google.errorprone.bugpatterns.JUnitAmbiguousTestClass;
import com.google.errorprone.bugpatterns.JUnitAssertSameCheck;
import com.google.errorprone.bugpatterns.LiteByteStringUtf8;
import com.google.errorprone.bugpatterns.LiteralClassName;
import com.google.errorprone.bugpatterns.LogicalAssignment;
import com.google.errorprone.bugpatterns.LongLiteralLowerCaseSuffix;
import com.google.errorprone.bugpatterns.LoopConditionChecker;
import com.google.errorprone.bugpatterns.MethodCanBeStatic;
import com.google.errorprone.bugpatterns.MissingCasesInEnumSwitch;
import com.google.errorprone.bugpatterns.MissingDefault;
import com.google.errorprone.bugpatterns.MissingFail;
import com.google.errorprone.bugpatterns.MissingOverride;
import com.google.errorprone.bugpatterns.MisusedWeekYear;
import com.google.errorprone.bugpatterns.MixedArrayDimensions;
import com.google.errorprone.bugpatterns.MockitoCast;
import com.google.errorprone.bugpatterns.MockitoUsage;
import com.google.errorprone.bugpatterns.ModifyingCollectionWithItself;
import com.google.errorprone.bugpatterns.MultiVariableDeclaration;
import com.google.errorprone.bugpatterns.MultipleTopLevelClasses;
import com.google.errorprone.bugpatterns.MustBeClosedChecker;
import com.google.errorprone.bugpatterns.MutableConstantField;
import com.google.errorprone.bugpatterns.NarrowingCompoundAssignment;
import com.google.errorprone.bugpatterns.NoAllocationChecker;
import com.google.errorprone.bugpatterns.NonAtomicVolatileUpdate;
import com.google.errorprone.bugpatterns.NonCanonicalStaticImport;
import com.google.errorprone.bugpatterns.NonCanonicalStaticMemberImport;
import com.google.errorprone.bugpatterns.NonFinalCompileTimeConstant;
import com.google.errorprone.bugpatterns.NonOverridingEquals;
import com.google.errorprone.bugpatterns.NonRuntimeAnnotation;
import com.google.errorprone.bugpatterns.NullableConstructor;
import com.google.errorprone.bugpatterns.NullablePrimitive;
import com.google.errorprone.bugpatterns.NullableVoid;
import com.google.errorprone.bugpatterns.NumericEquality;
import com.google.errorprone.bugpatterns.OperatorPrecedence;
import com.google.errorprone.bugpatterns.OptionalEquality;
import com.google.errorprone.bugpatterns.Overrides;
import com.google.errorprone.bugpatterns.PackageInfo;
import com.google.errorprone.bugpatterns.PackageLocation;
import com.google.errorprone.bugpatterns.PreconditionsCheckNotNull;
import com.google.errorprone.bugpatterns.PreconditionsCheckNotNullPrimitive;
import com.google.errorprone.bugpatterns.PreconditionsInvalidPlaceholder;
import com.google.errorprone.bugpatterns.PredicateIncompatibleType;
import com.google.errorprone.bugpatterns.PrimitiveArrayPassedToVarargsMethod;
import com.google.errorprone.bugpatterns.PrivateConstructorForUtilityClass;
import com.google.errorprone.bugpatterns.ProtoFieldNullComparison;
import com.google.errorprone.bugpatterns.ProtoFieldPreconditionsCheckNotNull;
import com.google.errorprone.bugpatterns.ProtoStringFieldReferenceEquality;
import com.google.errorprone.bugpatterns.ProtocolBufferOrdinal;
import com.google.errorprone.bugpatterns.RandomModInteger;
import com.google.errorprone.bugpatterns.RedundantThrows;
import com.google.errorprone.bugpatterns.ReferenceEquality;
import com.google.errorprone.bugpatterns.RemoveUnusedImports;
import com.google.errorprone.bugpatterns.RequiredModifiersChecker;
import com.google.errorprone.bugpatterns.RestrictedApiChecker;
import com.google.errorprone.bugpatterns.ReturnValueIgnored;
import com.google.errorprone.bugpatterns.SelfAssignment;
import com.google.errorprone.bugpatterns.SelfComparison;
import com.google.errorprone.bugpatterns.SelfEquals;
import com.google.errorprone.bugpatterns.ShortCircuitBoolean;
import com.google.errorprone.bugpatterns.ShouldHaveEvenArgs;
import com.google.errorprone.bugpatterns.SimpleDateFormatConstant;
import com.google.errorprone.bugpatterns.SizeGreaterThanOrEqualsZero;
import com.google.errorprone.bugpatterns.StaticQualifiedUsingExpression;
import com.google.errorprone.bugpatterns.StreamToString;
import com.google.errorprone.bugpatterns.StringBuilderInitWithChar;
import com.google.errorprone.bugpatterns.StringEquality;
import com.google.errorprone.bugpatterns.SuppressWarningsDeprecated;
import com.google.errorprone.bugpatterns.TestExceptionChecker;
import com.google.errorprone.bugpatterns.ThrowIfUncheckedKnownChecked;
import com.google.errorprone.bugpatterns.ThrowNull;
import com.google.errorprone.bugpatterns.ThrowsUncheckedException;
import com.google.errorprone.bugpatterns.TruthConstantAsserts;
import com.google.errorprone.bugpatterns.TruthSelfEquals;
import com.google.errorprone.bugpatterns.TryFailThrowable;
import com.google.errorprone.bugpatterns.TypeParameterQualifier;
import com.google.errorprone.bugpatterns.TypeParameterShadowing;
import com.google.errorprone.bugpatterns.TypeParameterUnusedInFormals;
import com.google.errorprone.bugpatterns.URLEqualsHashCode;
import com.google.errorprone.bugpatterns.UngroupedOverloads;
import com.google.errorprone.bugpatterns.UnnecessaryDefaultInEnumSwitch;
import com.google.errorprone.bugpatterns.UnnecessaryStaticImport;
import com.google.errorprone.bugpatterns.UnnecessaryTypeArgument;
import com.google.errorprone.bugpatterns.UnsynchronizedOverridesSynchronized;
import com.google.errorprone.bugpatterns.UnusedAnonymousClass;
import com.google.errorprone.bugpatterns.UnusedCollectionModifiedInPlace;
import com.google.errorprone.bugpatterns.VarChecker;
import com.google.errorprone.bugpatterns.WaitNotInLoop;
import com.google.errorprone.bugpatterns.WildcardImport;
import com.google.errorprone.bugpatterns.WrongParameterPackage;
import com.google.errorprone.bugpatterns.android.BundleDeserializationCast;
import com.google.errorprone.bugpatterns.android.FragmentInjection;
import com.google.errorprone.bugpatterns.android.FragmentNotInstantiable;
import com.google.errorprone.bugpatterns.android.HardCodedSdCardPath;
import com.google.errorprone.bugpatterns.android.IsLoggableTagLength;
import com.google.errorprone.bugpatterns.android.MislabeledAndroidString;
import com.google.errorprone.bugpatterns.android.RectIntersectReturnValueIgnored;
import com.google.errorprone.bugpatterns.android.StaticOrDefaultInterfaceMethod;
import com.google.errorprone.bugpatterns.argumentselectiondefects.ArgumentSelectionDefectChecker;
import com.google.errorprone.bugpatterns.argumentselectiondefects.AssertEqualsArgumentOrderChecker;
import com.google.errorprone.bugpatterns.collectionincompatibletype.CollectionIncompatibleType;
import com.google.errorprone.bugpatterns.collectionincompatibletype.CompatibleWithMisuse;
import com.google.errorprone.bugpatterns.collectionincompatibletype.IncompatibleArgumentType;
import com.google.errorprone.bugpatterns.formatstring.FormatString;
import com.google.errorprone.bugpatterns.formatstring.FormatStringAnnotationChecker;
import com.google.errorprone.bugpatterns.inject.AssistedInjectAndInjectOnConstructors;
import com.google.errorprone.bugpatterns.inject.AssistedInjectAndInjectOnSameConstructor;
import com.google.errorprone.bugpatterns.inject.AutoFactoryAtInject;
import com.google.errorprone.bugpatterns.inject.InjectOnConstructorOfAbstractClass;
import com.google.errorprone.bugpatterns.inject.InjectedConstructorAnnotations;
import com.google.errorprone.bugpatterns.inject.InvalidTargetingOnScopingAnnotation;
import com.google.errorprone.bugpatterns.inject.JavaxInjectOnAbstractMethod;
import com.google.errorprone.bugpatterns.inject.JavaxInjectOnFinalField;
import com.google.errorprone.bugpatterns.inject.MoreThanOneInjectableConstructor;
import com.google.errorprone.bugpatterns.inject.MoreThanOneQualifier;
import com.google.errorprone.bugpatterns.inject.MoreThanOneScopeAnnotationOnClass;
import com.google.errorprone.bugpatterns.inject.OverlappingQualifierAndScopeAnnotation;
import com.google.errorprone.bugpatterns.inject.QualifierOrScopeOnInjectMethod;
import com.google.errorprone.bugpatterns.inject.QualifierWithTypeUse;
import com.google.errorprone.bugpatterns.inject.ScopeAnnotationOnInterfaceOrAbstractClass;
import com.google.errorprone.bugpatterns.inject.ScopeOrQualifierAnnotationRetention;
import com.google.errorprone.bugpatterns.inject.dagger.AndroidInjectionBeforeSuper;
import com.google.errorprone.bugpatterns.inject.dagger.EmptySetMultibindingContributions;
import com.google.errorprone.bugpatterns.inject.dagger.PrivateConstructorForNoninstantiableModule;
import com.google.errorprone.bugpatterns.inject.dagger.ProvidesNull;
import com.google.errorprone.bugpatterns.inject.dagger.UseBinds;
import com.google.errorprone.bugpatterns.inject.guice.AssistedInjectScoping;
import com.google.errorprone.bugpatterns.inject.guice.AssistedParameters;
import com.google.errorprone.bugpatterns.inject.guice.BindingToUnqualifiedCommonType;
import com.google.errorprone.bugpatterns.inject.guice.InjectOnFinalField;
import com.google.errorprone.bugpatterns.inject.guice.OverridesGuiceInjectableMethod;
import com.google.errorprone.bugpatterns.inject.guice.OverridesJavaxInjectableMethod;
import com.google.errorprone.bugpatterns.inject.guice.ProvidesMethodOutsideOfModule;
import com.google.errorprone.bugpatterns.threadsafety.DoubleCheckedLocking;
import com.google.errorprone.bugpatterns.threadsafety.GuardedByChecker;
import com.google.errorprone.bugpatterns.threadsafety.ImmutableAnnotationChecker;
import com.google.errorprone.bugpatterns.threadsafety.ImmutableChecker;
import com.google.errorprone.bugpatterns.threadsafety.ImmutableEnumChecker;
import com.google.errorprone.bugpatterns.threadsafety.LockMethodChecker;
import com.google.errorprone.bugpatterns.threadsafety.StaticGuardedByInstance;
import com.google.errorprone.bugpatterns.threadsafety.SynchronizeOnNonFinalField;
import com.google.errorprone.bugpatterns.threadsafety.UnlockMethodChecker;
import java.util.Arrays;
/**
* Static helper class that provides {@link ScannerSupplier}s and {@link BugChecker}s for the
* built-in Error Prone checks, as opposed to plugin checks or checks used in tests.
*/
public class BuiltInCheckerSuppliers {
@SafeVarargs
public static ImmutableSet<BugCheckerInfo> getSuppliers(Class<? extends BugChecker>... checkers) {
return getSuppliers(Arrays.asList(checkers));
}
public static ImmutableSet<BugCheckerInfo> getSuppliers(
Iterable<Class<? extends BugChecker>> checkers) {
ImmutableSet.Builder<BugCheckerInfo> result = ImmutableSet.builder();
for (Class<? extends BugChecker> checker : checkers) {
result.add(BugCheckerInfo.create(checker));
}
return result.build();
}
/** Returns a {@link ScannerSupplier} with all {@link BugChecker}s in Error Prone. */
public static ScannerSupplier allChecks() {
return ScannerSupplier.fromBugCheckerInfos(
Iterables.concat(ENABLED_ERRORS, ENABLED_WARNINGS, DISABLED_CHECKS));
}
/**
* Returns a {@link ScannerSupplier} with the {@link BugChecker}s that are in the ENABLED lists.
*/
public static ScannerSupplier defaultChecks() {
return allChecks()
.filter(Predicates.or(Predicates.in(ENABLED_ERRORS), Predicates.in(ENABLED_WARNINGS)));
}
/**
* Returns a {@link ScannerSupplier} with the {@link BugChecker}s that are in the ENABLED_ERRORS
* list.
*/
public static ScannerSupplier errorChecks() {
return allChecks().filter(Predicates.in(ENABLED_ERRORS));
}
/** A list of all checks with severity ERROR that are on by default. */
public static final ImmutableSet<BugCheckerInfo> ENABLED_ERRORS =
getSuppliers(
AndroidInjectionBeforeSuper.class,
ArrayEquals.class,
ArrayHashCode.class,
ArrayToString.class,
ArraysAsListPrimitiveArray.class,
AssistedInjectScoping.class,
AssistedParameters.class,
AsyncCallableReturnsNull.class,
AsyncFunctionReturnsNull.class,
BadShiftAmount.class,
BundleDeserializationCast.class,
ChainingConstructorIgnoresParameter.class,
CheckReturnValue.class,
CollectionIncompatibleType.class,
CompatibleWithMisuse.class,
ComparisonOutOfRange.class,
CompileTimeConstantChecker.class,
ConstantOverflow.class,
DeadException.class,
DoNotCallChecker.class,
EqualsNaN.class,
FallThrough.class,
FilesLinesLeak.class,
ForOverrideChecker.class,
FormatString.class,
FormatStringAnnotationChecker.class,
FunctionalInterfaceMethodChanged.class,
FuturesGetCheckedIllegalExceptionType.class,
GetClassOnAnnotation.class,
GetClassOnClass.class,
GuardedByChecker.class,
HashtableContains.class,
IdentityBinaryExpression.class,
ImmutableChecker.class,
ImmutableModification.class,
IncompatibleArgumentType.class,
IndexOfChar.class,
InfiniteRecursion.class,
InjectOnFinalField.class,
InvalidPatternSyntax.class,
InvalidTimeZoneID.class,
IsInstanceOfClass.class,
IsLoggableTagLength.class,
JavaxInjectOnAbstractMethod.class,
JUnit3TestNotRun.class,
JUnit4SetUpNotRun.class,
JUnit4TearDownNotRun.class,
JUnit4TestNotRun.class,
JUnitAssertSameCheck.class,
LiteByteStringUtf8.class,
LoopConditionChecker.class,
MislabeledAndroidString.class,
MissingCasesInEnumSwitch.class,
MisusedWeekYear.class,
MockitoCast.class,
MockitoUsage.class,
ModifyingCollectionWithItself.class,
MoreThanOneInjectableConstructor.class,
MoreThanOneScopeAnnotationOnClass.class,
MustBeClosedChecker.class,
NonCanonicalStaticImport.class,
NonFinalCompileTimeConstant.class,
OptionalEquality.class,
OverlappingQualifierAndScopeAnnotation.class,
Overrides.class,
OverridesJavaxInjectableMethod.class,
PackageInfo.class,
PreconditionsCheckNotNull.class,
PreconditionsCheckNotNullPrimitive.class,
PredicateIncompatibleType.class,
ProtocolBufferOrdinal.class,
ProtoFieldNullComparison.class,
ProvidesMethodOutsideOfModule.class,
ProvidesNull.class,
RandomModInteger.class,
RectIntersectReturnValueIgnored.class,
RestrictedApiChecker.class,
ReturnValueIgnored.class,
SelfAssignment.class,
SelfComparison.class,
SelfEquals.class,
SizeGreaterThanOrEqualsZero.class,
ShouldHaveEvenArgs.class,
StreamToString.class,
StringBuilderInitWithChar.class,
SuppressWarningsDeprecated.class,
ThrowIfUncheckedKnownChecked.class,
ThrowNull.class,
TruthSelfEquals.class,
TryFailThrowable.class,
TypeParameterQualifier.class,
UnnecessaryTypeArgument.class,
UnusedAnonymousClass.class,
UnusedCollectionModifiedInPlace.class);
/** A list of all checks with severity WARNING that are on by default. */
public static final ImmutableSet<BugCheckerInfo> ENABLED_WARNINGS =
getSuppliers(
AmbiguousMethodReference.class,
ArgumentSelectionDefectChecker.class,
BadAnnotationImplementation.class,
BadComparable.class,
BoxedPrimitiveConstructor.class,
CannotMockFinalClass.class,
ClassCanBeStatic.class,
ClassNewInstance.class,
DefaultCharset.class,
DoubleCheckedLocking.class,
ElementsCountedInLoop.class,
EqualsHashCode.class,
EqualsIncompatibleType.class,
Finally.class,
FloatingPointLiteralPrecision.class,
FragmentInjection.class,
FragmentNotInstantiable.class,
FunctionalInterfaceClash.class,
FutureReturnValueIgnored.class,
GetClassOnEnum.class,
ImmutableAnnotationChecker.class,
ImmutableEnumChecker.class,
IncompatibleModifiersChecker.class,
InjectOnConstructorOfAbstractClass.class,
InputStreamSlowMultibyteRead.class,
IterableAndIterator.class,
JUnit3FloatingPointComparisonWithoutDelta.class,
JUnitAmbiguousTestClass.class,
LiteralClassName.class,
LogicalAssignment.class,
MissingFail.class,
MissingOverride.class,
MutableConstantField.class,
NarrowingCompoundAssignment.class,
NonAtomicVolatileUpdate.class,
NonOverridingEquals.class,
NullableConstructor.class,
NullablePrimitive.class,
NullableVoid.class,
OperatorPrecedence.class,
OverridesGuiceInjectableMethod.class,
PreconditionsInvalidPlaceholder.class,
ProtoFieldPreconditionsCheckNotNull.class,
ReferenceEquality.class,
RequiredModifiersChecker.class,
ShortCircuitBoolean.class,
SimpleDateFormatConstant.class,
StaticGuardedByInstance.class,
SynchronizeOnNonFinalField.class,
TruthConstantAsserts.class,
TypeParameterShadowing.class,
TypeParameterUnusedInFormals.class,
UnsynchronizedOverridesSynchronized.class,
URLEqualsHashCode.class,
WaitNotInLoop.class);
/** A list of all checks that are off by default. */
public static final ImmutableSet<BugCheckerInfo> DISABLED_CHECKS =
getSuppliers(
AutoFactoryAtInject.class,
AssertEqualsArgumentOrderChecker.class,
AssertFalse.class,
AssistedInjectAndInjectOnConstructors.class,
AssistedInjectAndInjectOnSameConstructor.class,
BigDecimalLiteralDouble.class,
BindingToUnqualifiedCommonType.class,
ClassName.class,
ComparisonContractViolated.class,
ConstantField.class,
ConstructorInvokesOverridable.class,
ConstructorLeaksThis.class,
DepAnn.class,
DivZero.class,
EmptyIfStatement.class,
EmptySetMultibindingContributions.class,
EmptyTopLevelDeclaration.class,
ExpectedExceptionChecker.class,
HardCodedSdCardPath.class,
InjectedConstructorAnnotations.class,
InsecureCipherMode.class,
InvalidTargetingOnScopingAnnotation.class,
IterablePathParameter.class,
JMockTestWithoutRunWithOrRuleAnnotation.class,
JavaxInjectOnFinalField.class,
LockMethodChecker.class,
LongLiteralLowerCaseSuffix.class,
MethodCanBeStatic.class,
MissingDefault.class,
MixedArrayDimensions.class,
MoreThanOneQualifier.class,
MultiVariableDeclaration.class,
MultipleTopLevelClasses.class,
NoAllocationChecker.class,
NonCanonicalStaticMemberImport.class,
NonRuntimeAnnotation.class,
NumericEquality.class,
PackageLocation.class,
PrimitiveArrayPassedToVarargsMethod.class,
PrivateConstructorForUtilityClass.class,
PrivateConstructorForNoninstantiableModule.class,
ProtoStringFieldReferenceEquality.class,
QualifierOrScopeOnInjectMethod.class,
QualifierWithTypeUse.class,
RedundantThrows.class,
RemoveUnusedImports.class,
ScopeAnnotationOnInterfaceOrAbstractClass.class,
ScopeOrQualifierAnnotationRetention.class,
StaticQualifiedUsingExpression.class,
StaticOrDefaultInterfaceMethod.class,
StringEquality.class,
TestExceptionChecker.class,
ThrowsUncheckedException.class,
UngroupedOverloads.class,
UnlockMethodChecker.class,
UnnecessaryDefaultInEnumSwitch.class,
UnnecessaryStaticImport.class,
UseBinds.class,
VarChecker.class,
WildcardImport.class,
WrongParameterPackage.class);
// May not be instantiated
private BuiltInCheckerSuppliers() {}
}