Class ScopeEscapeHoister

  • All Implemented Interfaces:
    ASTTransform

    public class ScopeEscapeHoister
    extends Object
    implements ASTTransform
    Repairs declarations whose variable escapes its block.
    • Constructor Detail

      • ScopeEscapeHoister

        public ScopeEscapeHoister()
    • Method Detail

      • setNonLocalName

        public void setNonLocalName​(Predicate<String> nonLocalName)
        Sets the test for names that must never be given a manufactured declaration.
        Parameters:
        nonLocalName - returns true for parameters and field names
      • getName

        public String getName()
        Specified by:
        getName in interface ASTTransform
        Returns:
        the name of this transform for logging/debugging
      • transform

        public boolean transform​(BlockStmt block)
        Description copied from interface: ASTTransform
        Transforms the given block statement in place.
        Specified by:
        transform in interface ASTTransform
        Parameters:
        block - the block to transform
        Returns:
        true if any changes were made