Mercurial > hg > truffle
changeset 12564:935dcd8ad8eb
Truffle-DSL: fixed wrong type simple name references with ECJ in generated code.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 21 Oct 2013 11:07:32 +0200 |
parents | ce4836e0212d |
children | e47f373499ec |
files | graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/Utils.java graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/codewriter/OrganizedImports.java |
diffstat | 2 files changed, 11 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/Utils.java Wed Oct 16 18:27:28 2013 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/Utils.java Mon Oct 21 11:07:32 2013 +0200 @@ -306,7 +306,7 @@ case LONG: return "Long"; case DECLARED: - return ((DeclaredType) mirror).asElement().getSimpleName().toString(); + return fixECJBinaryNameIssue(((DeclaredType) mirror).asElement().getSimpleName().toString()); case ARRAY: return getTypeId(((ArrayType) mirror).getComponentType()) + "Array"; case VOID: @@ -379,7 +379,7 @@ } private static String getDeclaredName(DeclaredType element) { - String simpleName = element.asElement().getSimpleName().toString(); + String simpleName = fixECJBinaryNameIssue(element.asElement().getSimpleName().toString()); if (element.getTypeArguments().size() == 0) { return simpleName; @@ -399,6 +399,14 @@ return b.toString(); } + public static String fixECJBinaryNameIssue(String name) { + if (name.contains("$")) { + int lastIndex = name.lastIndexOf('$'); + return name.substring(lastIndex + 1, name.length()); + } + return name; + } + public static String getQualifiedName(TypeElement element) { String qualifiedName = element.getQualifiedName().toString(); if (qualifiedName.contains("$")) {
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/codewriter/OrganizedImports.java Wed Oct 16 18:27:28 2013 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/codewriter/OrganizedImports.java Mon Oct 21 11:07:32 2013 +0200 @@ -135,7 +135,7 @@ } private String createDeclaredTypeName(Element enclosedElement, DeclaredType type) { - String name = type.asElement().getSimpleName().toString(); + String name = Utils.fixECJBinaryNameIssue(type.asElement().getSimpleName().toString()); if (needsImport(enclosedElement, type)) { TypeMirror usedByType = simpleNamesUsed.get(name);