Class AbstractEqualsHashCodeUsageChecker
java.lang.Object
com.google.errorprone.bugpatterns.BugChecker
com.google.errorprone.bugpatterns.AbstractEqualsHashCodeUsageChecker
- All Implemented Interfaces:
BugChecker.MemberReferenceTreeMatcher, BugChecker.MethodInvocationTreeMatcher, BugChecker.NewClassTreeMatcher, Suppressible, Serializable
- Direct Known Subclasses:
UndefinedEquals
public abstract class AbstractEqualsHashCodeUsageChecker
extends BugChecker
implements BugChecker.MethodInvocationTreeMatcher, BugChecker.MemberReferenceTreeMatcher, BugChecker.NewClassTreeMatcher
A base class for checks that flag code relying on equals or hashCode of particular types.
This class finds the places where equals and hashCode are used, either explicitly or
implicitly by collections, and subclasses decide which types should not be used in which ways.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static enumA way that code can rely on theequalsorhashCodeof a type.Nested classes/interfaces inherited from class BugChecker
BugChecker.AnnotatedTypeTreeMatcher, BugChecker.AnnotationTreeMatcher, BugChecker.ArrayAccessTreeMatcher, BugChecker.ArrayTypeTreeMatcher, BugChecker.AssertTreeMatcher, BugChecker.AssignmentTreeMatcher, BugChecker.BinaryTreeMatcher, BugChecker.BindingPatternTreeMatcher, BugChecker.BlockTreeMatcher, BugChecker.BreakTreeMatcher, BugChecker.CaseTreeMatcher, BugChecker.CatchTreeMatcher, BugChecker.ClassTreeMatcher, BugChecker.CompilationUnitTreeMatcher, BugChecker.CompoundAssignmentTreeMatcher, BugChecker.ConditionalExpressionTreeMatcher, BugChecker.ConstantCaseLabelTreeMatcher, BugChecker.ContinueTreeMatcher, BugChecker.DeconstructionPatternTreeMatcher, BugChecker.DefaultCaseLabelTreeMatcher, BugChecker.DoWhileLoopTreeMatcher, BugChecker.EmptyStatementTreeMatcher, BugChecker.EnhancedForLoopTreeMatcher, BugChecker.ExportsTreeMatcher, BugChecker.ExpressionStatementTreeMatcher, BugChecker.ForLoopTreeMatcher, BugChecker.IdentifierTreeMatcher, BugChecker.IfTreeMatcher, BugChecker.ImportTreeMatcher, BugChecker.InstanceOfTreeMatcher, BugChecker.IntersectionTypeTreeMatcher, BugChecker.LabeledStatementTreeMatcher, BugChecker.LambdaExpressionTreeMatcher, BugChecker.LiteralTreeMatcher, BugChecker.MemberReferenceTreeMatcher, BugChecker.MemberSelectTreeMatcher, BugChecker.MethodInvocationTreeMatcher, BugChecker.MethodTreeMatcher, BugChecker.ModifiersTreeMatcher, BugChecker.ModuleTreeMatcher, BugChecker.NewArrayTreeMatcher, BugChecker.NewClassTreeMatcher, BugChecker.OpensTreeMatcher, BugChecker.PackageTreeMatcher, BugChecker.ParameterizedTypeTreeMatcher, BugChecker.ParenthesizedTreeMatcher, BugChecker.PatternCaseLabelTreeMatcher, BugChecker.PrimitiveTypeTreeMatcher, BugChecker.ProvidesTreeMatcher, BugChecker.RequiresTreeMatcher, BugChecker.ReturnTreeMatcher, BugChecker.SuppressibleTreePathScanner<R,P>, BugChecker.SwitchExpressionTreeMatcher, BugChecker.SwitchTreeMatcher, BugChecker.SynchronizedTreeMatcher, BugChecker.ThrowTreeMatcher, BugChecker.TryTreeMatcher, BugChecker.TypeCastTreeMatcher, BugChecker.TypeParameterTreeMatcher, BugChecker.UnaryTreeMatcher, BugChecker.UnionTypeTreeMatcher, BugChecker.UsesTreeMatcher, BugChecker.VariableTreeMatcher, BugChecker.WhileLoopTreeMatcher, BugChecker.WildcardTreeMatcher, BugChecker.YieldTreeMatcher -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Optional<SuggestedFix> equalityFix(MethodInvocationTree tree, Tree receiver, Tree argument, VisitorState state) Returns a fix for anAbstractEqualsHashCodeUsageChecker.Usage.EQUALSorAbstractEqualsHashCodeUsageChecker.Usage.ASSERTIONfinding.final DescriptionmatchMemberReference(MemberReferenceTree tree, VisitorState state) final DescriptionmatchMethodInvocation(MethodInvocationTree tree, VisitorState state) final DescriptionmatchNewClass(NewClassTree tree, VisitorState state) problem(com.sun.tools.javac.code.Type type, AbstractEqualsHashCodeUsageChecker.Usage usage, VisitorState state) Returns a diagnostic message if code should not rely ontype'sequalsorhashCodein the given way.Methods inherited from class BugChecker
allNames, buildDescription, buildDescription, buildDescription, buildDescription, canonicalName, customSuppressionAnnotations, defaultSeverity, describeMatch, describeMatch, describeMatch, describeMatch, describeMatch, describeMatch, describeMatch, describeMatch, disableable, equals, hashCode, isSuppressed, isSuppressed, linkUrl, message, supportsSuppressWarnings, suppressedByAnyOf, suppressedRegionsMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Suppressible
allNames, canonicalName, customSuppressionAnnotations, supportsSuppressWarnings, suppressedByAnyOf
-
Constructor Details
-
AbstractEqualsHashCodeUsageChecker
public AbstractEqualsHashCodeUsageChecker()
-
-
Method Details
-
problem
protected abstract Optional<String> problem(com.sun.tools.javac.code.Type type, AbstractEqualsHashCodeUsageChecker.Usage usage, VisitorState state) Returns a diagnostic message if code should not rely ontype'sequalsorhashCodein the given way. -
equalityFix
protected Optional<SuggestedFix> equalityFix(MethodInvocationTree tree, Tree receiver, Tree argument, VisitorState state) Returns a fix for anAbstractEqualsHashCodeUsageChecker.Usage.EQUALSorAbstractEqualsHashCodeUsageChecker.Usage.ASSERTIONfinding. -
matchMethodInvocation
- Specified by:
matchMethodInvocationin interfaceBugChecker.MethodInvocationTreeMatcher
-
matchMemberReference
- Specified by:
matchMemberReferencein interfaceBugChecker.MemberReferenceTreeMatcher
-
matchNewClass
- Specified by:
matchNewClassin interfaceBugChecker.NewClassTreeMatcher
-