changeset 16815:8169deda04bb

Truffle-DSL: introduced identifiers for type matching.
author Christian Humer <christian.humer@gmail.com>
date Wed, 13 Aug 2014 18:06:18 +0200
parents 85c6e6fc3961
children 8d374faacb7e
files graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TypeSystemData.java
diffstat 2 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java	Wed Aug 13 18:06:18 2014 +0200
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java	Wed Aug 13 18:06:18 2014 +0200
@@ -906,13 +906,17 @@
             return false;
         } else {
             if (type1.getKind() == type2.getKind()) {
-                return type1.toString().equals(type2.toString());
+                return getUniqueIdentifier(type1).equals(getUniqueIdentifier(type2));
             } else {
                 return false;
             }
         }
     }
 
+    public static String getUniqueIdentifier(TypeMirror typeMirror) {
+        return fixECJBinaryNameIssue(typeMirror.toString());
+    }
+
     public static int compareByTypeHierarchy(TypeMirror t1, TypeMirror t2) {
         if (typeEquals(t1, t2)) {
             return 0;
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TypeSystemData.java	Wed Aug 13 18:06:18 2014 +0200
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TypeSystemData.java	Wed Aug 13 18:06:18 2014 +0200
@@ -59,7 +59,7 @@
             for (TypeData typeData : types) {
                 primitiveTypeMirrors.add(typeData.getPrimitiveType());
                 boxedTypeMirrors.add(typeData.getBoxedType());
-                cachedTypes.put(typeData.getPrimitiveType().toString(), typeData);
+                cachedTypes.put(ElementUtils.getUniqueIdentifier(typeData.getPrimitiveType()), typeData);
             }
         }
     }
@@ -154,7 +154,7 @@
     }
 
     public int findType(TypeMirror type) {
-        TypeData data = cachedTypes.get(type.toString());
+        TypeData data = cachedTypes.get(ElementUtils.getUniqueIdentifier(type));
         if (data != null) {
             return data.getIndex();
         }