if (gp.getNodeType() == ASTNode.METHOD_DECLARATION){ if (decl.getParent().getNodeType() == ASTNode.SINGLE_VARIABLE_DECLARATION) { updateType(unit, getType(decl.getParent()), unitChange, unitRewriter, typeName); } } else{ updateType(unit, getType(gp), unitChange, unitRewriter, typeName); } } else if (decl instanceof MethodDeclaration) { updateType(unit, getType(decl), unitChange, unitRewriter, typeName);
updateType(unit, getType(gp), unitChange, unitRewriter, typeName); } else if (decl instanceof MethodDeclaration || decl instanceof FieldDeclaration) { updateType(unit, getType(decl), unitChange, unitRewriter, typeName);
	private void updateCu(CompilationUnit unit, Set vars, CompilationUnitChange unitChange, 						  ASTRewrite unitRewriter, String typeName) throws JavaModelException {		for (Iterator it=vars.iterator(); it.hasNext(); ){			ConstraintVariable cv = (ConstraintVariable)it.next();			ASTNode decl= findDeclaration(unit, cv);			if (decl instanceof SimpleName && cv instanceof ExpressionVariable) {				ASTNode gp= decl.getParent().getParent();				if (gp.getNodeType() == ASTNode.METHOD_DECLARATION){ // method parameter					if (decl.getParent().getNodeType() == ASTNode.SINGLE_VARIABLE_DECLARATION) {						updateType(unit, getType(decl.getParent()), unitChange, unitRewriter, typeName);					}				} else{ 					updateType(unit, getType(gp), unitChange, unitRewriter, typeName); // local variable, field				}			} else if (decl instanceof MethodDeclaration) {				updateType(unit, getType(decl), unitChange, unitRewriter, typeName); // method return			}		}		}