Mercurial > hg > graal-jvmci-8
changeset 21000:fdf55f1ffc59
Truffle-DSL: fixed name conflicts for synthetic polymorphic execute methods.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Thu, 16 Apr 2015 22:38:52 +0200 |
parents | ef2825da2e43 |
children | acc86d08e1cc |
files | graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ExecutableTypeData.java graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeParser.java |
diffstat | 2 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ExecutableTypeData.java Thu Apr 16 17:30:43 2015 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ExecutableTypeData.java Thu Apr 16 22:38:52 2015 +0200 @@ -89,7 +89,11 @@ evaluatedParameters.add(parameter); } this.frameParameter = foundFrameParameter; - this.uniqueName = "execute" + (ElementUtils.isObject(getReturnType()) ? "" : ElementUtils.getTypeId(getReturnType())); + this.uniqueName = createName(this); + } + + public static String createName(ExecutableTypeData type) { + return "execute" + (ElementUtils.isObject(type.getReturnType()) ? "" : ElementUtils.getTypeId(type.getReturnType())); } public void addDelegatedFrom(ExecutableTypeData child) {
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeParser.java Thu Apr 16 17:30:43 2015 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeParser.java Thu Apr 16 22:38:52 2015 +0200 @@ -195,6 +195,9 @@ } ExecutableTypeData polymorphicType = new ExecutableTypeData(node, polymorphic.getReturnType().getType(), "execute", frame, dynamicTypes); + String genericName = ExecutableTypeData.createName(polymorphicType) + "_"; + polymorphicType.setUniqueName(genericName); + for (ExecutableTypeData type : node.getExecutableTypes()) { if (polymorphicType.sameSignature(type)) { polymorphicSignatureFound = true;