/** * For assignment expressions, return a safe expression for the LHS we can use * to return the value */ protected Expression createReturnLHSExpression(Expression expression) { if (expression instanceof BinaryExpression) { BinaryExpression binExpr = (BinaryExpression) expression; if (binExpr.getOperation().isA(Types.ASSIGNMENT_OPERATOR)) { return createReusableExpression(binExpr.getLeftExpression()); } } return null; }
/** * For assignment expressions, return a safe expression for the LHS we can use * to return the value */ protected Expression createReturnLHSExpression(Expression expression) { if (expression instanceof BinaryExpression) { BinaryExpression binExpr = (BinaryExpression) expression; if (binExpr.getOperation().isA(Types.ASSIGNMENT_OPERATOR)) { return createReusableExpression(binExpr.getLeftExpression()); } } return null; }
/** * For assignment expressions, return a safe expression for the LHS we can use * to return the value */ protected Expression createReturnLHSExpression(Expression expression) { if (expression instanceof BinaryExpression) { BinaryExpression binExpr = (BinaryExpression) expression; if (binExpr.getOperation().isA(Types.ASSIGNMENT_OPERATOR)) { return createReusableExpression(binExpr.getLeftExpression()); } } return null; }
@Override public void visitBinaryExpression(BinaryExpression expression) { if (!leafReached) { // have a look at assignment and try to get type from its right side Expression leftExpression = expression.getLeftExpression(); if (leftExpression instanceof VariableExpression) { if (expression.getOperation().isA(Types.EQUAL) && sameVariableName(leaf, leftExpression)) { Expression rightExpression = expression.getRightExpression(); if (rightExpression instanceof ConstantExpression && !rightExpression.getText().equals("null")) { // NOI18N guessedType = ((ConstantExpression) rightExpression).getType(); } else if (rightExpression instanceof ConstructorCallExpression) { guessedType = ((ConstructorCallExpression) rightExpression).getType(); } } } } super.visitBinaryExpression(expression); }
@Override public void visitBinaryExpression(BinaryExpression expression) { // if we are in the same block we check position, if it occurs after // current position we ignore it if (blocks.isEmpty() && expression.getLineNumber() >= 0 && expression.getColumnNumber() >= 0 && path.getLineNumber() >= 0 && path.getColumnNumber() >= 0 && (expression.getLineNumber() > path.getLineNumber() || (expression.getLineNumber() == path.getLineNumber() && expression.getColumnNumber() >= path.getColumnNumber()))) { return; } Expression leftExpression = expression.getLeftExpression(); if (leftExpression instanceof VariableExpression) { if (expression.getOperation().isA(Types.EQUAL)) { VariableExpression variableExpression = (VariableExpression) leftExpression; if (variableExpression.getAccessedVariable() != null) { String name = variableExpression.getAccessedVariable().getName(); if (!variables.containsKey(name)) { variables.put(name, variableExpression.getAccessedVariable()); } } } } super.visitBinaryExpression(expression); }