if (targetCu != null) {  TypeChangeCompletionProposal proposal= new TypeChangeCompletionProposal(targetCu, overriddenDecl, astRoot, binding.getReturnType(), false, 7);
if (targetCu != null && ASTResolving.isUseableTypeInContext(returnType, overriddenDecl, false)) { TypeChangeCompletionProposal proposal= new TypeChangeCompletionProposal(targetCu, overriddenDecl, astRoot, returnType, false, 7);
	public static void addIncompatibleReturnTypeProposals(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 || overridden.getReturnType() == binding.getReturnType()) {			return;		}				ICompilationUnit cu= context.getCompilationUnit();		IMethodBinding methodDecl= binding.getGenericMethod();		proposals.add(new TypeChangeCompletionProposal(cu, methodDecl, astRoot, overridden.getReturnType(), false, 8));				ICompilationUnit targetCu= cu;				IMethodBinding overriddenDecl= overridden.getGenericMethod();		ITypeBinding overridenDeclType= overriddenDecl.getDeclaringClass();		if (overridenDeclType.isFromSource()) {			targetCu= ASTResolving.findCompilationUnitForBinding(cu, astRoot, overridenDeclType);		}		if (targetCu != null) {			// TODO: check if binding.getReturnType() contains type local types/variables			TypeChangeCompletionProposal proposal= new TypeChangeCompletionProposal(targetCu, overriddenDecl, astRoot, binding.getReturnType(), false, 7);			if (overridenDeclType.isInterface()) {				proposal.setDisplayName(CorrectionMessages.getFormattedString("TypeMismatchSubProcessor.changereturnofimplemented.description", overriddenDecl.getName())); //$NON-NLS-1$)			} else {				proposal.setDisplayName(CorrectionMessages.getFormattedString("TypeMismatchSubProcessor.changereturnofoverridden.description", overriddenDecl.getName())); //$NON-NLS-1$)			}			proposals.add(proposal);		}	}