diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/DSLExpression.java @ 19348:ef292a5bb79d

Truffle-DSL: fix findbugs comparison warnings.
author Christian Humer <christian.humer@gmail.com>
date Fri, 13 Feb 2015 11:37:13 +0100
parents 244f1b50be4c
children
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/DSLExpression.java	Fri Feb 13 11:37:13 2015 +0100
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/DSLExpression.java	Fri Feb 13 11:37:13 2015 +0100
@@ -23,6 +23,7 @@
 package com.oracle.truffle.dsl.processor.expression;
 
 import java.util.*;
+import java.util.concurrent.atomic.*;
 
 import javax.lang.model.element.*;
 import javax.lang.model.type.*;
@@ -68,6 +69,19 @@
         return variables;
     }
 
+    public boolean containsComparisons() {
+        final AtomicBoolean found = new AtomicBoolean();
+        this.accept(new AbstractDSLExpressionVisitor() {
+            @Override
+            public void visitBinary(Binary binary) {
+                if (binary.isComparison()) {
+                    found.set(true);
+                }
+            }
+        });
+        return found.get();
+    }
+
     public void setResolvedTargetType(TypeMirror resolvedTargetType) {
         this.resolvedTargetType = resolvedTargetType;
     }
@@ -131,6 +145,10 @@
             this.right = right;
         }
 
+        public boolean isComparison() {
+            return DSLExpressionResolver.COMPARABLE_OPERATORS.contains(operator) || DSLExpressionResolver.IDENTITY_OPERATORS.contains(operator);
+        }
+
         @Override
         public boolean equals(Object obj) {
             if (obj instanceof Binary) {