Class ImmutableAnalysis
java.lang.Object
com.google.errorprone.bugpatterns.threadsafety.ImmutableAnalysis
Analyzes types for deep immutability.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Acceptsviolations
that are found during the analysis. -
Method Summary
Modifier and TypeMethodDescriptioncheckForImmutability
(Optional<com.sun.source.tree.ClassTree> tree, com.google.common.collect.ImmutableSet<String> immutableTyParams, com.sun.tools.javac.code.Type.ClassType type, ImmutableAnalysis.ViolationReporter reporter) Check that an@Immutable
-annotated class: does not declare or inherit any mutable fields, any immutable supertypes are instantiated with immutable type arguments as required by their containerOf spec, and any enclosing instances are immutable.checkInvocation
(com.sun.tools.javac.code.Type methodType, com.sun.tools.javac.code.Symbol symbol)
-
Method Details
-
checkInvocation
public ThreadSafety.Violation checkInvocation(com.sun.tools.javac.code.Type methodType, com.sun.tools.javac.code.Symbol symbol) -
checkForImmutability
public ThreadSafety.Violation checkForImmutability(Optional<com.sun.source.tree.ClassTree> tree, com.google.common.collect.ImmutableSet<String> immutableTyParams, com.sun.tools.javac.code.Type.ClassType type, ImmutableAnalysis.ViolationReporter reporter) Check that an@Immutable
-annotated class:- does not declare or inherit any mutable fields,
- any immutable supertypes are instantiated with immutable type arguments as required by their containerOf spec, and
- any enclosing instances are immutable.
-