private boolean is(final InfixExpression ie, MethodInvocation node, Operator operator, Integer constant) { final Expression leftOp = removeParentheses(ie.getLeftOperand()); final Expression rightOp = removeParentheses(ie.getRightOperand()); return hasOperator(ie, operator) && ((leftOp.equals(node) && constant.equals(rightOp.resolveConstantExpressionValue())) || (rightOp.equals(node) && constant.equals(leftOp.resolveConstantExpressionValue()))); }
private static Expression getNextSiblingExpression(Expression expression) { InfixExpression parentInfixExpression= (InfixExpression) expression.getParent(); List<Expression> extendedOperands= parentInfixExpression.extendedOperands(); Expression sibiling; if (expression.equals(parentInfixExpression.getLeftOperand())) { sibiling= parentInfixExpression.getRightOperand(); } else if (expression.equals(parentInfixExpression.getRightOperand())) { if (parentInfixExpression.getParent() instanceof InfixExpression) { sibiling= getNextSiblingExpression(parentInfixExpression); } else if (extendedOperands.size() > 0) { sibiling= extendedOperands.get(0); } else { sibiling= null; } } else if (extendedOperands.contains(expression)) { sibiling= null; ListIterator<Expression> it= extendedOperands.listIterator(); while (it.hasNext()) { if (expression.equals(it.next()) && it.hasNext()) { sibiling= it.next(); break; } } } else { sibiling= null; } return sibiling; }
private static Expression getNextSiblingExpression(Expression expression) { InfixExpression parentInfixExpression= (InfixExpression) expression.getParent(); Expression sibiling; if (expression.equals(parentInfixExpression.getLeftOperand())) { sibiling= parentInfixExpression.getRightOperand(); } else if (expression.equals(parentInfixExpression.getRightOperand())) { if (parentInfixExpression.getParent() instanceof InfixExpression) sibiling= getNextSiblingExpression(parentInfixExpression); else sibiling= null; } else { sibiling= null; } return sibiling; }
public static boolean substituteMustBeParenthesized(Expression substitute, Expression location) { if (!needsParentheses(substitute)) return false; ASTNode parent= location.getParent(); if (parent instanceof VariableDeclarationFragment){ VariableDeclarationFragment vdf= (VariableDeclarationFragment)parent; if (vdf.getInitializer().equals(location)) return false; } else if (parent instanceof MethodInvocation){ MethodInvocation mi= (MethodInvocation)parent; if (mi.arguments().contains(location)) return false; } else if (parent instanceof ReturnStatement) return false; return true; }
if (getAssignmentOutSafeOperators().contains(assignment.getOperator())) { return true; } else if (assignment.getLeftHandSide().equals(node)) { return isNotNull(assignment.getRightHandSide()); } else { return assignment.getRightHandSide().equals(node) && assignment.getLeftHandSide() instanceof Name && isOfType((Name) assignment.getLeftHandSide()); return fragment.getInitializer().equals(node) && isOfType(fragment.getName()); if (returnStmt.getExpression().equals(node)) { final MethodDeclaration method = getAncestorOrNull(returnStmt, MethodDeclaration.class); if (method != null && method.getReturnType2() != null) { return conditionalExpr.getExpression().equals(node);
} else if (parent instanceof ReturnStatement) { final ReturnStatement returnStmt = (ReturnStatement) parent; if (returnStmt.getExpression().equals(node)) { final MethodDeclaration method = getAncestorOrNull(returnStmt, MethodDeclaration.class); if (method != null && method.getReturnType2() != null) { } else if (parent instanceof ArrayAccess) { final ArrayAccess arrayAccess = (ArrayAccess) parent; if (arrayAccess.getIndex().equals(node)) { return node.getAST().resolveWellKnownType("int"); if (conditionalExpr.getExpression().equals(node)) { return node.getAST().resolveWellKnownType("boolean"); if (ifStmt.getExpression().equals(node)) { return node.getAST().resolveWellKnownType("boolean"); if (whileStmt.getExpression().equals(node)) { return node.getAST().resolveWellKnownType("boolean"); if (doStmt.getExpression().equals(node)) { return node.getAST().resolveWellKnownType("boolean"); if (switchStmt.getExpression().equals(node)) { final ITypeBinding discriminentType = switchStmt.getExpression().resolveTypeBinding(); if (discriminentType.isPrimitive() || discriminentType.isEnum()
if (!((ArrayAccess) parent).getIndex().equals(node)) { Type type= guessTypeForReference(ast, parent); if (type != null) {
if (!((ArrayAccess) parent).getIndex().equals(node)) { Type type = guessTypeForReference(ast, parent); if (type != null) {
if (!((ArrayAccess) parent).getIndex().equals(node)) { Type type= guessTypeForReference(ast, parent); if (type != null) {
if (!((ArrayAccess) parent).getIndex().equals(node)) { Type type= guessTypeForReference(ast, parent); if (type != null) {
if (expression == null || expression.equals(name)) { return false;
case ASTNode.VARIABLE_DECLARATION_FRAGMENT: VariableDeclarationFragment frag= (VariableDeclarationFragment) parent; if (frag.getInitializer().equals(node)) { return frag.getName().resolveTypeBinding(); return guessBindingForReference(parent); case ASTNode.ARRAY_ACCESS: if (((ArrayAccess) parent).getIndex().equals(node)) { return parent.getAST().resolveWellKnownType("int"); //$NON-NLS-1$ } else { if (((SwitchStatement) parent).getExpression().equals(node)) { return parent.getAST().resolveWellKnownType("int"); //$NON-NLS-1$
case ASTNode.VARIABLE_DECLARATION_FRAGMENT: VariableDeclarationFragment frag= (VariableDeclarationFragment) parent; if (frag.getInitializer().equals(node)) { return frag.getName().resolveTypeBinding(); return guessBindingForReference(parent); case ASTNode.ARRAY_ACCESS: if (((ArrayAccess) parent).getIndex().equals(node)) { return parent.getAST().resolveWellKnownType("int"); //$NON-NLS-1$ } else { if (((SwitchStatement) parent).getExpression().equals(node)) { return parent.getAST().resolveWellKnownType("int"); //$NON-NLS-1$
case ASTNode.VARIABLE_DECLARATION_FRAGMENT: VariableDeclarationFragment frag= (VariableDeclarationFragment) parent; if (frag.getInitializer().equals(node)) { return frag.getName().resolveTypeBinding(); return guessBindingForReference(parent); case ASTNode.ARRAY_ACCESS: if (((ArrayAccess) parent).getIndex().equals(node)) { return parent.getAST().resolveWellKnownType("int"); //$NON-NLS-1$ } else { if (((SwitchStatement) parent).getExpression().equals(node)) { return parent.getAST().resolveWellKnownType("int"); //$NON-NLS-1$