Class NoAllocationChecker
java.lang.Object
com.google.errorprone.bugpatterns.BugChecker
com.google.errorprone.bugpatterns.NoAllocationChecker
- All Implemented Interfaces:
BugChecker.AssignmentTreeMatcher, BugChecker.BinaryTreeMatcher, BugChecker.CompoundAssignmentTreeMatcher, BugChecker.EnhancedForLoopTreeMatcher, BugChecker.MethodInvocationTreeMatcher, BugChecker.MethodTreeMatcher, BugChecker.NewArrayTreeMatcher, BugChecker.NewClassTreeMatcher, BugChecker.ReturnTreeMatcher, BugChecker.TypeCastTreeMatcher, BugChecker.UnaryTreeMatcher, BugChecker.VariableTreeMatcher, Suppressible, Serializable
public class NoAllocationChecker
extends BugChecker
implements BugChecker.AssignmentTreeMatcher, BugChecker.BinaryTreeMatcher, BugChecker.CompoundAssignmentTreeMatcher, BugChecker.EnhancedForLoopTreeMatcher, BugChecker.MethodTreeMatcher, BugChecker.MethodInvocationTreeMatcher, BugChecker.NewArrayTreeMatcher, BugChecker.NewClassTreeMatcher, BugChecker.ReturnTreeMatcher, BugChecker.TypeCastTreeMatcher, BugChecker.UnaryTreeMatcher, BugChecker.VariableTreeMatcher
Checks methods annotated with
@NoAllocation to ensure they really do not allocate.
- Calls to new are disallowed.
- Methods statically determined to be reachable from this method must also be annotated with
@NoAllocation. - Autoboxing is disallowed.
- String concatenation and conversions are disallowed.
- To make it easier to use exceptions, allocations are always allowed within a throw
statement. (But not in the methods of nested classes if they are annotated with
NoAllocation.) - The check is done at the source level. The compiler or runtime may perform optimizations or transformations that add or remove allocations in a way not visible to this check.
- See Also:
-
Nested Class Summary
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.ContinueTreeMatcher, 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.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 TypeMethodDescriptionmatchAssignment(AssignmentTree tree, VisitorState state) matchBinary(BinaryTree tree, VisitorState state) matchCompoundAssignment(CompoundAssignmentTree tree, VisitorState state) matchEnhancedForLoop(EnhancedForLoopTree tree, VisitorState state) matchMethod(MethodTree tree, VisitorState state) matchMethodInvocation(MethodInvocationTree tree, VisitorState state) matchNewArray(NewArrayTree tree, VisitorState state) matchNewClass(NewClassTree tree, VisitorState state) matchReturn(ReturnTree tree, VisitorState state) matchTypeCast(TypeCastTree tree, VisitorState state) matchUnary(UnaryTree tree, VisitorState state) matchVariable(VariableTree tree, VisitorState state) Methods inherited from class BugChecker
allNames, buildDescription, buildDescription, buildDescription, canonicalName, customSuppressionAnnotations, defaultSeverity, describeMatch, describeMatch, describeMatch, describeMatch, describeMatch, describeMatch, disableable, equals, hashCode, isSuppressed, isSuppressed, 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
-
NoAllocationChecker
public NoAllocationChecker()
-
-
Method Details
-
matchNewArray
- Specified by:
matchNewArrayin interfaceBugChecker.NewArrayTreeMatcher
-
matchNewClass
- Specified by:
matchNewClassin interfaceBugChecker.NewClassTreeMatcher
-
matchMethodInvocation
- Specified by:
matchMethodInvocationin interfaceBugChecker.MethodInvocationTreeMatcher
-
matchMethod
- Specified by:
matchMethodin interfaceBugChecker.MethodTreeMatcher
-
matchBinary
- Specified by:
matchBinaryin interfaceBugChecker.BinaryTreeMatcher
-
matchCompoundAssignment
- Specified by:
matchCompoundAssignmentin interfaceBugChecker.CompoundAssignmentTreeMatcher
-
matchEnhancedForLoop
- Specified by:
matchEnhancedForLoopin interfaceBugChecker.EnhancedForLoopTreeMatcher
-
matchAssignment
- Specified by:
matchAssignmentin interfaceBugChecker.AssignmentTreeMatcher
-
matchVariable
- Specified by:
matchVariablein interfaceBugChecker.VariableTreeMatcher
-
matchTypeCast
- Specified by:
matchTypeCastin interfaceBugChecker.TypeCastTreeMatcher
-
matchReturn
- Specified by:
matchReturnin interfaceBugChecker.ReturnTreeMatcher
-
matchUnary
- Specified by:
matchUnaryin interfaceBugChecker.UnaryTreeMatcher
-