* {@link org.codehaus.groovy.transform.ASTTransformation#visit(org.codehaus.groovy.ast.ASTNode[], org.codehaus.groovy.control.SourceUnit)}
*/
public void visit(ASTNode[] nodes, SourceUnit unit) {
final ModuleNode moduleNode = unit.getAST();
ReaderSource source = getReaderSource(unit);
final ClassNode contractedAnnotationClassNode = ClassHelper.makeWithoutCaching(Contracted.class);
for (final ClassNode classNode : moduleNode.getClasses()) {
if (classNode.getAnnotations(contractedAnnotationClassNode).isEmpty()) continue;