Bug 74580 formatting for condition quick assists
3.1 M2 test pass The formatting of conditionals modified by the new quick assists is misleading. Consider the following: if (c1) { one(); } else if (c2) { two(); } else { three(); } translates into: if (!c1) if (c2) { two(); } else { three(); } else { one(); } which is correct, but it is barely visible from the formatting that the last else clause belongs to the first if statement. I would expect this (with or without the braces): if (!c1) if (c2) { two(); } else { three(); } else { one(); }
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/AdvancedQuickAssistProcessor.java
}
					if (!needParenthesis) {
						return;
					}
					
					if (!(node.getParent() instanceof InfixExpression))
						return;
					InfixExpression parentExpression = (InfixExpression) node.getParent();
					InfixExpression.Operator parentOperator = parentExpression.getOperator();
					if ((parentOperator != InfixExpression.Operator.CONDITIONAL_AND)
							&& (parentOperator != InfixExpression.Operator.CONDITIONAL_OR)) {
						return;
					}
					
					ParenthesizedExpression parenthesizedExpression = ast.newParenthesizedExpression();
					Expression expressionPlaceholder = (Expression) rewrite.createCopyTarget(node);
					parenthesizedExpression.setExpression(expressionPlaceholder);
					rewrite.replace(node, parenthesizedExpression, null);
					changedNodes.add(node);
				}
			});
		}
		
		if (changedNodes.isEmpty())
			return false;
		if (resultingCollections == null) {
			return true;
		}