Class ImmutableAnalysis


  • public class ImmutableAnalysis
    extends Object
    Analyzes types for deep immutability.
    • Method Detail

      • 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.
        requiring supertypes to be annotated immutable would be too restrictive.