changeset 13530:0576e9a0358e

Truffle-DSL: minor cleanup.
author Christian Humer <christian.humer@gmail.com>
date Tue, 07 Jan 2014 19:13:54 +0100
parents 856c2c294f84
children 1f870eaf1e96
files graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java
diffstat 1 files changed, 5 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java	Tue Jan 07 18:53:04 2014 +0100
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/NodeCodeGenerator.java	Tue Jan 07 19:13:54 2014 +0100
@@ -1115,7 +1115,7 @@
 
         private CodeExecutableElement createCachedExecute(NodeData node, SpecializationData polymorph) {
             CodeExecutableElement cachedExecute = new CodeExecutableElement(modifiers(PROTECTED, ABSTRACT), polymorph.getReturnType().getType(), EXECUTE_POLYMORPHIC_NAME);
-            addInternalValueParameters(cachedExecute, polymorph, true, true);
+            addInternalValueParameters(cachedExecute, polymorph, true, false);
 
             ExecutableTypeData sourceExecutableType = node.findExecutableType(polymorph.getReturnType().getTypeSystemType(), 0);
             boolean sourceThrowsUnexpected = sourceExecutableType != null && sourceExecutableType.hasUnexpectedValue(getContext());
@@ -2467,10 +2467,7 @@
 
             clazz.getAnnotationMirrors().add(createNodeInfo(node, Kind.POLYMORPHIC));
 
-            for (ActualParameter polymorphParameter : polymorph.getParameters()) {
-                if (!polymorphParameter.getSpecification().isSignature()) {
-                    continue;
-                }
+            for (ActualParameter polymorphParameter : polymorph.getSignatureParameters()) {
                 if (!polymorphParameter.getTypeSystemType().isGeneric()) {
                     continue;
                 }
@@ -2672,16 +2669,10 @@
             CodeTypeElement clazz = getElement();
 
             final SpecializationData polymorphic = node.getPolymorphicSpecialization();
-
             ExecutableElement executeCached = nodeGen.getMethod(EXECUTE_POLYMORPHIC_NAME);
-            // ExecutableTypeData execType = new ExecutableTypeData(polymorphic, executeCached,
-            // node.getTypeSystem(), polymorphic.getReturnType().getTypeSystemType());
-
-            ExecutableTypeMethodParser parser = new ExecutableTypeMethodParser(getContext(), node);
-            ExecutableTypeData execType = parser.parse(Arrays.asList(executeCached)).get(0);
-
-            CodeExecutableElement executeMethod = createExecutableTypeOverride(execType, false);
-            CodeTreeBuilder builder = executeMethod.getBuilder();
+            CodeExecutableElement executeMethod = CodeExecutableElement.clone(getContext().getEnvironment(), executeCached);
+            executeMethod.getModifiers().remove(Modifier.ABSTRACT);
+            CodeTreeBuilder builder = executeMethod.createBuilder();
 
             if (specialization.isGeneric() || specialization.isPolymorphic()) {
                 builder.startThrow().startNew(getContext().getType(AssertionError.class));