ASTNode parent= node.getParent();
ASTNode parent= getUnparenthesizedParent(node);
	private boolean isReferenceInInvocationUpdatable(ASTNode node, Collection nodesToRemove) throws JavaModelException{		ASTNode parent= node.getParent();		Assert.isTrue(isInvocation(parent));		                   		int argumentIndex= getArgumentIndexInInvocation(node);		if (argumentIndex == -1 )			return isReferenceUpdatable(parent, nodesToRemove);		IMethodBinding bin= resolveMethodBindingInInvocation(node);		if (bin == null)			return false;		IMethod method= Binding2JavaModel.find(bin, fInputClass.getJavaProject());		if (method == null)			return false;		method= (IMethod)WorkingCopyUtil.getWorkingCopyIfExists(method);					if (method.getCompilationUnit() == null) {			if (fSuperTypeToUse == null)				return false;			IType type= JavaModelUtil.findType(fInputClass.getJavaProject(), Signature.toString(method.getParameterTypes()[argumentIndex]));			if (type == null)				return false;			return isTypeOkToUseAsSuperType(type);		}			MethodDeclaration methodDeclarationNode= getMethodDeclarationNode(method);		if (method == null)			return false;		SingleVariableDeclaration parDecl= (SingleVariableDeclaration)methodDeclarationNode.parameters().get(argumentIndex);		return ! fBadVarSet.contains(parDecl);	}