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
prefixExpression.setOperator(PrefixExpression.Operator.NOT);
			prefixExpression.setOperand((Expression) rewrite.createMoveTarget(expression));
			return prefixExpression;
		}
		return (Expression) rewrite.createCopyTarget(expression);
	}
	private static Expression getInversedInfixBooleanExpression(AST ast, ASTRewrite rewrite,
			InfixExpression expression, InfixExpression.Operator newOperator) {
		InfixExpression newExpression = ast.newInfixExpression();
		newExpression.setOperator(newOperator);
		newExpression.setLeftOperand(getInversedBooleanExpression(ast, rewrite, expression.getLeftOperand()));
		newExpression.setRightOperand(getInversedBooleanExpression(ast, rewrite, expression.getRightOperand()));
		return newExpression;
	}
	private static Expression getInversedAndOrExpression(AST ast, ASTRewrite rewrite, InfixExpression infixExpression,
			Operator newOperator) {
		int newOperatorPrecedence = getInfixOperatorPrecedence(newOperator);
		
		Expression leftOperand = getInversedBooleanExpression(ast, rewrite, infixExpression.getLeftOperand());
		int leftPrecedence = getExpressionPrecedence(leftOperand);
		if (newOperatorPrecedence < leftPrecedence) {
			leftOperand = getParenthesizedExpression(ast, leftOperand);
		}
		
		Expression rightOperand = getInversedBooleanExpression(ast, rewrite, infixExpression.getRightOperand());
		int rightPrecedence = getExpressionPrecedence(rightOperand);
		if (newOperatorPrecedence < rightPrecedence) {
			rightOperand = getParenthesizedExpression(ast, rightOperand);
		}