# HG changeset patch # User Christian Humer # Date 1382346452 -7200 # Node ID 935dcd8ad8eb2242bbccccc744b6abe426fe66d1 # Parent ce4836e0212d05f3f0b4ec3a6fbe711fc3eaff26 Truffle-DSL: fixed wrong type simple name references with ECJ in generated code. diff -r ce4836e0212d -r 935dcd8ad8eb graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/Utils.java --- 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("$")) { diff -r ce4836e0212d -r 935dcd8ad8eb graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/codewriter/OrganizedImports.java --- 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);