if (fFieldBinding != null){ IField f= Bindings.findField(fFieldBinding, fCu.getJavaProject()); return ASTNodeSearchUtil.getFieldDeclarationNode(f, root); }
	private ASTNode findDeclaration(CompilationUnit root, ConstraintVariable cv) throws JavaModelException {		if (cv instanceof ExpressionVariable){			for (Iterator iter= fAllConstraints.iterator(); iter.hasNext();) {				ITypeConstraint constraint= (ITypeConstraint) iter.next();				if (constraint.isSimpleTypeConstraint()){					SimpleTypeConstraint stc= (SimpleTypeConstraint)constraint;					if (stc.isDefinesConstraint() && stc.getLeft().equals(cv)){						ConstraintVariable right= stc.getRight();						if (right instanceof TypeVariable){							TypeVariable typeVariable= (TypeVariable)right;							return NodeFinder.perform(root, typeVariable.getCompilationUnitRange().getSourceRange());						}					}				}			}		} else if (cv instanceof ReturnTypeVariable) {			ReturnTypeVariable rtv= (ReturnTypeVariable) cv;			IMethodBinding mb= rtv.getMethodBinding();			IMethod im= Bindings.findMethod(mb, fCu.getJavaProject());			return ASTNodeSearchUtil.getMethodDeclarationNode(im, root);		}		return null;	}