if (methodBinding.isConstructor()) {
if (methodDecl.isConstructor()) {
	private static void doMoreParameters(IInvocationContext context, IProblemLocation problem, ASTNode invocationNode, List arguments, ITypeBinding[] argTypes, IMethodBinding methodBinding, Collection proposals) throws CoreException {		ITypeBinding[] paramTypes= methodBinding.getParameterTypes();		int k= 0, nSkipped= 0;		int diff= paramTypes.length - argTypes.length;		int[] indexSkipped= new int[diff];		for (int i= 0; i < paramTypes.length; i++) {			if (k < argTypes.length && TypeRules.canAssign(argTypes[k], paramTypes[i])) {				k++; // match			} else {				if (nSkipped >= diff) {					return; // too different				} 				indexSkipped[nSkipped++]= i;			}		}		ITypeBinding declaringType= methodBinding.getDeclaringClass();		ICompilationUnit cu= context.getCompilationUnit();		CompilationUnit astRoot= context.getASTRoot();					// add arguments		{						String[] arg= new String[] { getMethodSignature(methodBinding, false) };			String label;			if (diff == 1) {				label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.addargument.description", arg); //$NON-NLS-1$			} else {				label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.addarguments.description", arg); //$NON-NLS-1$			}						AddArgumentCorrectionProposal proposal= new AddArgumentCorrectionProposal(label, context.getCompilationUnit(), invocationNode, indexSkipped, paramTypes, 8);			proposal.setImage(JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_ADD));			proposals.add(proposal);						}				// remove parameters		if (!declaringType.isFromSource()) {			return;		}				ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, declaringType);		if (targetCU != null) {			ChangeDescription[] changeDesc= new ChangeDescription[paramTypes.length];			ITypeBinding[] changedTypes= new ITypeBinding[diff];			for (int i= diff - 1; i >= 0; i--) {				int idx= indexSkipped[i];				changeDesc[idx]= new RemoveDescription();				changedTypes[i]= paramTypes[idx];			}			String[] arg= new String[] { getMethodSignature(methodBinding, !cu.equals(targetCU)), getTypeNames(changedTypes) };			String label;			if (methodBinding.isConstructor()) {				if (diff == 1) {					label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.removeparam.constr.description", arg); //$NON-NLS-1$				} else {					label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.removeparams.constr.description", arg); //$NON-NLS-1$				}			} else {				if (diff == 1) {					label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.removeparam.description", arg); //$NON-NLS-1$				} else {					label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.removeparams.description", arg); //$NON-NLS-1$				}								}					Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_REMOVE);			ChangeMethodSignatureProposal proposal= new ChangeMethodSignatureProposal(label, targetCU, invocationNode, methodBinding, changeDesc, null, 5, image);			proposals.add(proposal);		}	}