TypeUtilities.isBoolean(leftResult.getType()) ^ TypeUtilities.isBoolean(rightResult.getType())) { rightResult != null && rightResult.getType() != null && TypeUtilities.isBoolean(leftResult.getType()) ^ TypeUtilities.isBoolean(rightResult.getType())) { if (TypeUtilities.isBoolean(leftResult.getType()) && TypeUtilities.isArithmetic(rightResult.getType())) { final TypeReference expectedType = TypeUtilities.getExpectedTypeByParent(_resolver, node); if (expectedType != null && TypeUtilities.isBoolean(expectedType)) { final ResolveResult result = _resolver.apply(node);
@Override public Void visitUnaryOperatorExpression(final UnaryOperatorExpression node, final Void data) { super.visitUnaryOperatorExpression(node, data); switch (node.getOperator()) { case NOT: { final Expression operand = node.getExpression(); final ResolveResult result = _resolver.apply(operand); if (result != null && result.getType() != null && !TypeUtilities.isBoolean(result.getType()) && MetadataHelper.getUnderlyingPrimitiveTypeOrSelf(result.getType()).getSimpleType().isNumeric()) { final TypeReference comparandType = MetadataHelper.getUnderlyingPrimitiveTypeOrSelf(result.getType()); operand.replaceWith( new Function<AstNode, AstNode>() { @Override public AstNode apply(final AstNode input) { return new BinaryOperatorExpression( operand, BinaryOperatorType.INEQUALITY, new PrimitiveExpression(Expression.MYSTERY_OFFSET, JavaPrimitiveCast.cast(comparandType.getSimpleType(), 0)) ); } } ); } break; } } return null; }
TypeUtilities.isBoolean(leftResult.getType()) ^ TypeUtilities.isBoolean(rightResult.getType())) { rightResult != null && rightResult.getType() != null && TypeUtilities.isBoolean(leftResult.getType()) ^ TypeUtilities.isBoolean(rightResult.getType())) { if (TypeUtilities.isBoolean(leftResult.getType()) && TypeUtilities.isArithmetic(rightResult.getType())) { final TypeReference expectedType = TypeUtilities.getExpectedTypeByParent(_resolver, node); if (expectedType != null && TypeUtilities.isBoolean(expectedType)) { final ResolveResult result = _resolver.apply(node);
TypeUtilities.isBoolean(leftResult.getType()) ^ TypeUtilities.isBoolean(rightResult.getType())) { rightResult != null && rightResult.getType() != null && TypeUtilities.isBoolean(leftResult.getType()) ^ TypeUtilities.isBoolean(rightResult.getType())) { if (TypeUtilities.isBoolean(leftResult.getType()) && TypeUtilities.isArithmetic(rightResult.getType())) { final TypeReference expectedType = TypeUtilities.getExpectedTypeByParent(_resolver, node); if (expectedType != null && TypeUtilities.isBoolean(expectedType)) { final ResolveResult result = _resolver.apply(node);
@Override public Void visitUnaryOperatorExpression(final UnaryOperatorExpression node, final Void data) { super.visitUnaryOperatorExpression(node, data); switch (node.getOperator()) { case NOT: { final Expression operand = node.getExpression(); final ResolveResult result = _resolver.apply(operand); if (result != null && result.getType() != null && !TypeUtilities.isBoolean(result.getType()) && MetadataHelper.getUnderlyingPrimitiveTypeOrSelf(result.getType()).getSimpleType().isNumeric()) { final TypeReference comparandType = MetadataHelper.getUnderlyingPrimitiveTypeOrSelf(result.getType()); operand.replaceWith( new Function<AstNode, AstNode>() { @Override public AstNode apply(final AstNode input) { return new BinaryOperatorExpression( operand, BinaryOperatorType.INEQUALITY, new PrimitiveExpression(Expression.MYSTERY_OFFSET, JavaPrimitiveCast.cast(comparandType.getSimpleType(), 0)) ); } } ); } break; } } return null; }
@Override public Void visitUnaryOperatorExpression(final UnaryOperatorExpression node, final Void data) { super.visitUnaryOperatorExpression(node, data); switch (node.getOperator()) { case NOT: { final Expression operand = node.getExpression(); final ResolveResult result = _resolver.apply(operand); if (result != null && result.getType() != null && !TypeUtilities.isBoolean(result.getType()) && MetadataHelper.getUnderlyingPrimitiveTypeOrSelf(result.getType()).getSimpleType().isNumeric()) { final TypeReference comparandType = MetadataHelper.getUnderlyingPrimitiveTypeOrSelf(result.getType()); operand.replaceWith( new Function<AstNode, AstNode>() { @Override public AstNode apply(final AstNode input) { return new BinaryOperatorExpression( operand, BinaryOperatorType.INEQUALITY, new PrimitiveExpression(Expression.MYSTERY_OFFSET, JavaPrimitiveCast.cast(comparandType.getSimpleType(), 0)) ); } } ); } break; } } return null; }