Bug 31389 Remove unused private fields - broken with >1 field/line
M5: Declare some variables like this: private int v1, v2; Use v2 in the code. (You might also have to turn on the compiler option to make unused fields a warning not ignored). Press ctrl-1 on the variable declaration line, select "remove". The whole line is removed even though v1 was the only unused variable.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/LocalCorrectionsSubProcessor.java
CastExpression expression= (CastExpression) nodeToCast;
				rewrite.markAsReplaced(expression.getType(), rewrite.createPlaceholder(simpleCastType, ASTRewrite.TYPE));
			} else {
				label= CorrectionMessages.getFormattedString("LocalCorrectionsSubProcessor.addcast.description", castType); 
				
				Expression expressionCopy= (Expression) rewrite.createCopy(nodeToCast);
				Type typeCopy= (Type) rewrite.createPlaceholder(simpleCastType, ASTRewrite.TYPE);
				CastExpression castExpression= astRoot.getAST().newCastExpression();
				castExpression.setExpression(expressionCopy);
				castExpression.setType(typeCopy);
				
				rewrite.markAsReplaced(nodeToCast, castExpression);
			}
			proposal.setDisplayName(label);
			proposal.ensureNoModifications();
			
			proposals.add(proposal);
		}
		
		
		if (parentNodeType == ASTNode.RETURN_STATEMENT) {
			ITypeBinding binding= nodeToCast.resolveTypeBinding();
			
			BodyDeclaration decl= ASTResolving.findParentBodyDeclaration(selectedNode);
			if (binding != null && decl instanceof MethodDeclaration) {
				MethodDeclaration methodDeclaration= (MethodDeclaration) decl;
	
				ASTRewrite rewrite= new ASTRewrite(methodDeclaration);
				Type newReturnType= ASTResolving.getTypeFromTypeBinding(astRoot.getAST(), binding);
				rewrite.markAsReplaced(methodDeclaration.getReturnType(), newReturnType);