diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java @ 20170:953c813b8e7a

DSL: allow comparison of different integral types.
author Chris Seaton <chris.seaton@oracle.com>
date Sun, 05 Apr 2015 20:40:52 +0100
parents 2bd8b3aa282f
children 3648df587223
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java	Sun Apr 05 19:51:46 2015 +0100
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java	Sun Apr 05 20:40:52 2015 +0100
@@ -934,6 +934,20 @@
         }
     }
 
+    public static boolean typeCompatible(TypeMirror type1, TypeMirror type2) {
+        if (typeEquals(type1, type2)) {
+            return true;
+        } else if (kindIsIntegral(type1.getKind())) {
+            return kindIsIntegral(type2.getKind());
+        } else {
+            return false;
+        }
+    }
+
+    private static boolean kindIsIntegral(TypeKind kind) {
+        return kind == TypeKind.BYTE || kind == TypeKind.SHORT || kind == TypeKind.INT || kind == TypeKind.LONG;
+    }
+
     public static List<String> getUniqueIdentifiers(List<TypeMirror> typeMirror) {
         List<String> ids = new ArrayList<>();
         for (TypeMirror type : typeMirror) {