Mercurial > hg > truffle
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(); }