improve diagnostics upon AST validation failure (#4033)
This commit is contained in:
@@ -123,7 +123,14 @@ var AST_Node = DEFNODE("Node", "start end", {
|
|||||||
validate_ast: function() {
|
validate_ast: function() {
|
||||||
var marker = {};
|
var marker = {};
|
||||||
this.walk(new TreeWalker(function(node) {
|
this.walk(new TreeWalker(function(node) {
|
||||||
if (node.validate_visited === marker) throw new Error("invalid node reuse: " + node);
|
if (node.validate_visited === marker) {
|
||||||
|
throw new Error(string_template("cannot reuse {type} from [{file}:{line},{col}]", {
|
||||||
|
type: "AST_" + node.TYPE,
|
||||||
|
file: node.start.file,
|
||||||
|
line: node.start.line,
|
||||||
|
col: node.start.col,
|
||||||
|
}));
|
||||||
|
}
|
||||||
node.validate_visited = marker;
|
node.validate_visited = marker;
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user