Class ImmutableAnalysis
java.lang.Object
com.google.errorprone.bugpatterns.threadsafety.ImmutableAnalysis
Analyzes types for deep immutability.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classFactory forImmutableAnalysis.static interfaceAcceptsviolationsthat are found during the analysis. -
Method Summary
Modifier and TypeMethodDescriptioncheckForImmutability(Optional<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<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.
-