ASTNode node= astRoot.findDeclaringNode(binding.getGenericType());
ASTNode node= astRoot.findDeclaringNode(binding.getTypeDeclaration());
	public static ICompilationUnit findCompilationUnitForBinding(ICompilationUnit cu, CompilationUnit astRoot, ITypeBinding binding) throws JavaModelException {		if (binding == null || !binding.isFromSource() || binding.isTypeVariable() || binding.isWildcardType()) {			return null;		}		ASTNode node= astRoot.findDeclaringNode(binding.getGenericType());		if (node == null) {			ICompilationUnit targetCU= Bindings.findCompilationUnit(binding, cu.getJavaProject());			if (targetCU != null) {				return targetCU;			}			return null;		} else if (node instanceof AbstractTypeDeclaration || node instanceof AnonymousClassDeclaration) {			return cu;		}		return null;	}