# HG changeset patch # User Christian Humer # Date 1420485802 -3600 # Node ID 941761f6b7362c8c99eea59bb8042494015c9709 # Parent f4d78e4a878d0a3e9bfb176816413149558b7b58 Truffle-DSL: fixed thrown exception messages should provide more contextual information. (reported by Benoit Daloze) diff -r f4d78e4a878d -r 941761f6b736 graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/AnnotationProcessor.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/AnnotationProcessor.java Mon Jan 05 20:23:22 2015 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/AnnotationProcessor.java Mon Jan 05 20:23:22 2015 +0100 @@ -77,7 +77,12 @@ context.registerTemplate(type, model); if (model != null) { - CodeTypeElement unit = factory.create(ProcessorContext.getInstance(), model); + CodeTypeElement unit; + try { + unit = factory.create(ProcessorContext.getInstance(), model); + } catch (Throwable e) { + throw new RuntimeException(String.format("Failed to write code for %s. Parserdump:%s.", ElementUtils.getQualifiedName(type), model.dump())); + } if (unit == null) { return; } @@ -95,5 +100,4 @@ } } } - } diff -r f4d78e4a878d -r 941761f6b736 graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java Mon Jan 05 20:23:22 2015 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java Mon Jan 05 20:23:22 2015 +0100 @@ -412,6 +412,7 @@ return typeSystem; } + @Override public String dump() { return dump(0); } diff -r f4d78e4a878d -r 941761f6b736 graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/Template.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/Template.java Mon Jan 05 20:23:22 2015 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/Template.java Mon Jan 05 20:23:22 2015 +0100 @@ -57,6 +57,10 @@ return templateType; } + public String dump() { + return toString(); + } + @Override protected List findChildContainers() { return Collections.emptyList(); diff -r f4d78e4a878d -r 941761f6b736 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 Mon Jan 05 20:23:22 2015 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeParser.java Mon Jan 05 20:23:22 2015 +0100 @@ -92,7 +92,14 @@ enclosedNodes.add(enclosedChild); } } - NodeData node = parseNode(rootType); + NodeData node; + try { + node = parseNode(rootType); + } catch (CompileErrorException e) { + throw e; + } catch (Throwable e) { + throw new RuntimeException(String.format("Parsing of Node %s failed.", ElementUtils.getQualifiedName(rootType)), e); + } if (node == null && !enclosedNodes.isEmpty()) { node = new NodeData(context, rootType); }