Assert.isTrue(binding != null && binding.getKind() == IBinding.METHOD || binding.getKind() == IBinding.VARIABLE);
Assert.isTrue(binding != null && binding.getKind() == IBinding.METHOD || binding.getKind() == IBinding.VARIABLE && Bindings.isDeclarationBinding(binding));
	public TypeChangeCompletionProposal(ICompilationUnit targetCU, IBinding binding, CompilationUnit astRoot, ITypeBinding newType, boolean offerSuperTypeProposals, int relevance) {		super("", targetCU, null, relevance, JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE)); //$NON-NLS-1$				Assert.isTrue(binding != null && binding.getKind() == IBinding.METHOD || binding.getKind() == IBinding.VARIABLE);				fBinding= binding; // must be generic method or (generic) variable		fAstRoot= astRoot;		fNewType= newType;		fOfferSuperTypeProposals= offerSuperTypeProposals;				if (binding.getKind() == IBinding.VARIABLE) {			IVariableBinding varBinding= (IVariableBinding) binding;						String[] args= { varBinding.getName(), newType.getName() };			if (varBinding.isField()) {				setDisplayName(CorrectionMessages.getFormattedString("TypeChangeCompletionProposal.field.name", args)); //$NON-NLS-1$			} else if (astRoot.findDeclaringNode(binding) instanceof SingleVariableDeclaration) {				setDisplayName(CorrectionMessages.getFormattedString("TypeChangeCompletionProposal.param.name", args)); //$NON-NLS-1$			} else {				setDisplayName(CorrectionMessages.getFormattedString("TypeChangeCompletionProposal.variable.name", args)); //$NON-NLS-1$			}		} else {			String[] args= { binding.getName(), newType.getName() };			setDisplayName(CorrectionMessages.getFormattedString("TypeChangeCompletionProposal.method.name", args)); //$NON-NLS-1$		}	}