improve diagnostics upon AST validation failure (#4033)

This commit is contained in:
Alex Lam S.L
2020-07-31 15:50:16 +01:00
committed by GitHub
parent 88423f2574
commit af13f8dd2c

View File

@@ -123,7 +123,14 @@ var AST_Node = DEFNODE("Node", "start end", {
validate_ast: function() {
var marker = {};
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;
}));
},