Bug 67427 [quick fix] incorrect caret in "assign to local variable" quick fix
RC2 void m() { new String(); } Place caret after the semicolon. Ctrl+1, choose "assign to local variable". -> computed caret position is before the semicolon with considerably reduces the value of this quick fix.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/AssignToVariableAssistProposal.java
addLinkedPosition(rewrite.track(newDeclFrag.getName()), false, KEY_NAME);
		addLinkedPosition(rewrite.track(newDecl.getType()), false, KEY_TYPE);
		addLinkedPosition(rewrite.track(accessName), true, KEY_NAME);
		setEndPosition(rewrite.track(selectionNode));
		
		return rewrite;		
	}
	private Type evaluateType(AST ast) throws CoreException {
		ITypeBinding[] proposals= ASTResolving.getRelaxingTypes(ast, fTypeBinding);
		for (int i= 0; i < proposals.length; i++) {
			addLinkedPositionProposal(KEY_TYPE, proposals[i]);
		}
		String typeName= getImportRewrite().addImport(fTypeBinding);
		return ASTNodeFactory.newType(ast, typeName);
	}
	
	private String[] suggestLocalVariableNames(ITypeBinding binding, Expression expression) {
		ArrayList res= new ArrayList();
		
		IJavaProject project= getCompilationUnit().getJavaProject();
		ITypeBinding base= binding.isArray() ? binding.getElementType() : binding;
		IPackageBinding packBinding= base.getPackage();
		String packName= packBinding != null ? packBinding.getName() : ""; 
		
		String[] excludedNames= getUsedVariableNames();
		
		String name= ASTResolving.getBaseNameFromExpression(project, expression);
		if (name != null) {
			String[] argname= StubUtility.getLocalNameSuggestions(project, name, 0, excludedNames); 
			for (int i= 0; i < argname.length; i++) {