# HG changeset patch # User Christian Humer # Date 1407945986 -7200 # Node ID 84f1c44b5e9bb6a9094608b62b570e1aa1e7a552 # Parent 224a89858453b805c6e8c9f27eb315c247c22dfd Truffle-DSL: fixed resolve of executeWith. diff -r 224a89858453 -r 84f1c44b5e9b graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java Wed Aug 13 18:06:26 2014 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java Wed Aug 13 18:06:26 2014 +0200 @@ -322,12 +322,12 @@ /** *
      * variant1 $condition != null
-     *
+     * 
      * $type $name = defaultValue($type);
      * if ($condition) {
      *     $name = $value;
      * }
-     *
+     * 
      * variant2 $condition != null
      * $type $name = $value;
      * 
@@ -2629,14 +2629,14 @@ primaryExecutes = findFunctionalExecutableType(specialization, lastEvaluatedCount); } - CodeTreeBuilder builder = new CodeTreeBuilder(null); - builder.getTree().setEnclosingElement(execType.getMessageElement()); - + CodeExecutableElement executeMethod = createExecutableTypeOverride(execType, true); + clazz.add(executeMethod); + CodeTreeBuilder builder = executeMethod.getBuilder(); CodeTree result = createExecuteBody(builder, specialization, execType, primaryExecutes); if (result != null) { - CodeExecutableElement method = createExecutableTypeOverride(execType, true); - method.createBuilder().tree(result); - clazz.add(method); + builder.tree(result); + } else { + clazz.remove(executeMethod); } } } diff -r 224a89858453 -r 84f1c44b5e9b graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeParser.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeParser.java Wed Aug 13 18:06:26 2014 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeParser.java Wed Aug 13 18:06:26 2014 +0200 @@ -145,8 +145,8 @@ return node; // error sync point } + node.setExecutableTypes(groupExecutableTypes(new ExecutableTypeMethodParser(context, node).parse(elements))); initializeChildren(node); - node.setExecutableTypes(groupExecutableTypes(new ExecutableTypeMethodParser(context, node).parse(elements))); node.getSpecializations().addAll(new SpecializationMethodParser(context, node).parse(elements)); node.getSpecializations().addAll(new GenericParser(context, node).parse(elements));