# Package org.apache.groovy.contracts.ast

## Package org.apache.groovy.contracts.ast Description

AST transformations for implementing Design by Contract semantics, including precondition, postcondition, and invariant validation transformations.

- Class Summary
  Class | Description
  --- | ---
  BaseASTTransformation | Base AST transformation encapsulating all common helper methods and implementing ASTTransformation.
  ClosureExpressionEvaluationASTTransformation | Evaluates ClosureExpression instances in annotation parameters and generates special contract closure classes from them.
  GContractsASTTransformation |
  LoopInvariantASTTransformation | Handles Invariant annotations placed on loop statements (`for`, `while`, `do-while`).
  LoopVariantASTTransformation | Handles Decreases annotations placed on loop statements (`for`, `while`, `do-while`).
  ModifiesASTTransformation | Handles Modifies annotations placed on methods.
  ModifiesEnsuresValidationTransformation | Validates that `@Ensures` postconditions on a method only reference fields via `old.xxx` that are declared as modifiable by `@Modifies`.