Bug 74568 Convert for loop QA too sensitive on caret position
3.1 M2: The "Convert for loop" QA is only available if the caret is on the "for" keyword or after the second semicolon (inside the third controlling expression). I'd expect to have this QA on all three expressions.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java
} else if (childProperty == IfStatement.ELSE_STATEMENT_PROPERTY) {
				label = CorrectionMessages.getString("QuickAssistProcessor.replaceelsewithblock.description");
			} else {
				label = CorrectionMessages.getString("QuickAssistProcessor.replacebodywithblock.description");
			}
			
			Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE);
			LinkedCorrectionProposal proposal= new LinkedCorrectionProposal(label, context.getCompilationUnit(), rewrite, 10, image);
			proposal.setEndPosition(rewrite.track(child));
			resultingCollections.add(proposal);
		}
		
		if (statement.getNodeType() == ASTNode.IF_STATEMENT) {
			IfStatement ifStatement= (IfStatement) statement;
			Statement thenStatment= ifStatement.getThenStatement();
			Statement elseStatment= ifStatement.getElseStatement();
			
			
			if ((childProperty == IfStatement.THEN_STATEMENT_PROPERTY && elseStatment != null && !(elseStatment instanceof Block))
				|| (childProperty == IfStatement.ELSE_STATEMENT_PROPERTY && !(thenStatment instanceof Block))) {
				ASTRewrite rewrite= ASTRewrite.create(ast);
				ASTNode childPlaceholder1= rewrite.createMoveTarget(thenStatment);
				Block replacingBody1= ast.newBlock();
				replacingBody1.statements().add(childPlaceholder1);
				rewrite.set(statement, IfStatement.THEN_STATEMENT_PROPERTY, replacingBody1, null);
				ASTNode childPlaceholder2= rewrite.createMoveTarget(elseStatment);
				Block replacingBody2= ast.newBlock();
				replacingBody2.statements().add(childPlaceholder2);
				rewrite.set(statement, IfStatement.ELSE_STATEMENT_PROPERTY, replacingBody2, null);