diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java @ 20939:f83fd99b2962

Truffle-DSL: add support for null literals.
author Christian Humer <christian.humer@gmail.com>
date Tue, 14 Apr 2015 15:12:48 +0200
parents 18c0f02fa4d2
children 476374f3fe9a
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java	Tue Apr 14 15:12:48 2015 +0200
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java	Tue Apr 14 15:12:48 2015 +0200
@@ -365,6 +365,8 @@
                 return getTypeId(((ArrayType) mirror).getComponentType()) + "Array";
             case VOID:
                 return "Void";
+            case NULL:
+                return "Null";
             case WILDCARD:
                 StringBuilder b = new StringBuilder();
                 WildcardType type = (WildcardType) mirror;
@@ -411,6 +413,8 @@
                 return getSimpleName(((ArrayType) mirror).getComponentType()) + "[]";
             case VOID:
                 return "void";
+            case NULL:
+                return "null";
             case WILDCARD:
                 return getWildcardName((WildcardType) mirror);
             case TYPEVAR:
@@ -501,6 +505,8 @@
                 return getQualifiedName(((ArrayType) mirror).getComponentType());
             case VOID:
                 return "void";
+            case NULL:
+                return "null";
             case TYPEVAR:
                 return getSimpleName(mirror);
             case ERROR:
@@ -662,6 +668,7 @@
             case INT:
             case LONG:
             case VOID:
+            case NULL:
             case TYPEVAR:
                 return null;
             case DECLARED:
@@ -945,6 +952,13 @@
             return true;
         } else if (kindIsIntegral(type1.getKind())) {
             return kindIsIntegral(type2.getKind());
+        } else if (type1.getKind() == TypeKind.NULL) {
+            if (type2.getKind() == TypeKind.NULL) {
+                return false;
+            }
+            return true;
+        } else if (type2.getKind() == TypeKind.NULL) {
+            return true;
         } else {
             return false;
         }