proposals.add(new ChangeMethodSignatureProposal(label, cu, astRoot, binding, null, changes, 8, image));
proposals.add(new ChangeMethodSignatureProposal(label, cu, astRoot, methodDeclBinding, null, changes, 8, image));
	public static void addIncompatibleThrowsProposals(IInvocationContext context, IProblemLocation problem, Collection proposals) throws JavaModelException {		CompilationUnit astRoot= context.getASTRoot();		ASTNode selectedNode= problem.getCoveringNode(astRoot);		if (!(selectedNode instanceof MethodDeclaration)) {			return;		}		MethodDeclaration decl= (MethodDeclaration) selectedNode;		IMethodBinding binding= decl.resolveBinding();		if (binding == null) {			return;		}				IMethodBinding overridden= Bindings.findMethodDefininition(binding, false);		if (overridden == null) {			return;		}				ICompilationUnit cu= context.getCompilationUnit();				ITypeBinding[] methodExceptions= binding.getExceptionTypes();		ITypeBinding[] definedExceptions= overridden.getExceptionTypes();				ArrayList undeclaredExceptions= new ArrayList();		{			ChangeDescription[] changes= new ChangeDescription[methodExceptions.length];						for (int i= 0; i < methodExceptions.length; i++) {				if (!isDeclaredException(methodExceptions[i], definedExceptions)) {					changes[i]= new RemoveDescription();					undeclaredExceptions.add(methodExceptions[i]);				}			}			String label= CorrectionMessages.getFormattedString("TypeMismatchSubProcessor.removeexceptions.description", binding.getName()); //$NON-NLS-1$			Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_REMOVE);			proposals.add(new ChangeMethodSignatureProposal(label, cu, astRoot, binding, null, changes, 8, image));		}				ITypeBinding declaringType= overridden.getDeclaringClass();		ICompilationUnit targetCu= cu;		if (declaringType != null && declaringType.isFromSource()) {			targetCu= ASTResolving.findCompilationUnitForBinding(cu, astRoot, declaringType);		}		if (targetCu != null) {			ChangeDescription[] changes= new ChangeDescription[definedExceptions.length + undeclaredExceptions.size()];						for (int i= 0; i < undeclaredExceptions.size(); i++) {				changes[i + definedExceptions.length]= new InsertDescription((ITypeBinding) undeclaredExceptions.get(i), ""); //$NON-NLS-1$			}			String[] args= {  declaringType.getName(), overridden.getName() };			String label= CorrectionMessages.getFormattedString("TypeMismatchSubProcessor.addexceptions.description", args); //$NON-NLS-1$			Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_ADD);			proposals.add(new ChangeMethodSignatureProposal(label, targetCu, astRoot, overridden, null, changes, 7, image));		}	}