Mercurial > hg > truffle
changeset 18781:941761f6b736
Truffle-DSL: fixed thrown exception messages should provide more contextual information. (reported by Benoit Daloze)
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 05 Jan 2015 20:23:22 +0100 |
parents | f4d78e4a878d |
children | 3ea386a1036f |
files | graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/AnnotationProcessor.java graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/Template.java graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeParser.java |
diffstat | 4 files changed, 19 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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 @@ } } } - }
--- 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); }
--- 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<MessageContainer> findChildContainers() { return Collections.emptyList();
--- 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); }