diff --git a/src/protocol/ast_printer.rs b/src/protocol/ast_printer.rs index ef616a9504825f992232a4087d7898e01352722f..67f99b1686f2b8397b4f6e911ab8f9312f1feee1 100644 --- a/src/protocol/ast_printer.rs +++ b/src/protocol/ast_printer.rs @@ -591,6 +591,7 @@ impl ASTWriter { Expression::Assignment(expr) => { self.kv(indent).with_id(PREFIX_ASSIGNMENT_EXPR_ID, expr.this.0.index) .with_s_key("AssignmentExpr"); + self.kv(indent2).with_s_key("UniqueId").with_disp_val(&expr.unique_id_in_definition); self.kv(indent2).with_s_key("Operation").with_debug_val(&expr.operation); self.kv(indent2).with_s_key("Left"); self.write_expr(heap, expr.left, indent3); @@ -602,6 +603,7 @@ impl ASTWriter { Expression::Binding(expr) => { self.kv(indent).with_id(PREFIX_BINARY_EXPR_ID, expr.this.0.index) .with_s_key("BindingExpr"); + self.kv(indent2).with_s_key("UniqueId").with_disp_val(&expr.unique_id_in_definition); self.kv(indent2).with_s_key("BindToExpression"); self.write_expr(heap, expr.bound_to, indent3); self.kv(indent2).with_s_key("BindFromExpression"); @@ -612,6 +614,7 @@ impl ASTWriter { Expression::Conditional(expr) => { self.kv(indent).with_id(PREFIX_CONDITIONAL_EXPR_ID, expr.this.0.index) .with_s_key("ConditionalExpr"); + self.kv(indent2).with_s_key("UniqueId").with_disp_val(&expr.unique_id_in_definition); self.kv(indent2).with_s_key("Condition"); self.write_expr(heap, expr.test, indent3); self.kv(indent2).with_s_key("TrueExpression"); @@ -624,6 +627,7 @@ impl ASTWriter { Expression::Binary(expr) => { self.kv(indent).with_id(PREFIX_BINARY_EXPR_ID, expr.this.0.index) .with_s_key("BinaryExpr"); + self.kv(indent2).with_s_key("UniqueId").with_disp_val(&expr.unique_id_in_definition); self.kv(indent2).with_s_key("Operation").with_debug_val(&expr.operation); self.kv(indent2).with_s_key("Left"); self.write_expr(heap, expr.left, indent3); @@ -635,6 +639,7 @@ impl ASTWriter { Expression::Unary(expr) => { self.kv(indent).with_id(PREFIX_UNARY_EXPR_ID, expr.this.0.index) .with_s_key("UnaryExpr"); + self.kv(indent2).with_s_key("UniqueId").with_disp_val(&expr.unique_id_in_definition); self.kv(indent2).with_s_key("Operation").with_debug_val(&expr.operation); self.kv(indent2).with_s_key("Argument"); self.write_expr(heap, expr.expression, indent3); @@ -644,6 +649,7 @@ impl ASTWriter { Expression::Indexing(expr) => { self.kv(indent).with_id(PREFIX_INDEXING_EXPR_ID, expr.this.0.index) .with_s_key("IndexingExpr"); + self.kv(indent2).with_s_key("UniqueId").with_disp_val(&expr.unique_id_in_definition); self.kv(indent2).with_s_key("Subject"); self.write_expr(heap, expr.subject, indent3); self.kv(indent2).with_s_key("Index"); @@ -654,6 +660,7 @@ impl ASTWriter { Expression::Slicing(expr) => { self.kv(indent).with_id(PREFIX_SLICING_EXPR_ID, expr.this.0.index) .with_s_key("SlicingExpr"); + self.kv(indent2).with_s_key("UniqueId").with_disp_val(&expr.unique_id_in_definition); self.kv(indent2).with_s_key("Subject"); self.write_expr(heap, expr.subject, indent3); self.kv(indent2).with_s_key("FromIndex"); @@ -666,6 +673,7 @@ impl ASTWriter { Expression::Select(expr) => { self.kv(indent).with_id(PREFIX_SELECT_EXPR_ID, expr.this.0.index) .with_s_key("SelectExpr"); + self.kv(indent2).with_s_key("UniqueId").with_disp_val(&expr.unique_id_in_definition); self.kv(indent2).with_s_key("Subject"); self.write_expr(heap, expr.subject, indent3); @@ -685,6 +693,7 @@ impl ASTWriter { self.kv(indent).with_id(PREFIX_LITERAL_EXPR_ID, expr.this.0.index) .with_s_key("LiteralExpr"); + self.kv(indent2).with_s_key("UniqueId").with_disp_val(&expr.unique_id_in_definition); let val = self.kv(indent2).with_s_key("Value"); match &expr.value { Literal::Null => { val.with_s_val("null"); }, @@ -760,6 +769,7 @@ impl ASTWriter { Expression::Cast(expr) => { self.kv(indent).with_id(PREFIX_CAST_EXPR_ID, expr.this.0.index) .with_s_key("CallExpr"); + self.kv(indent2).with_s_key("UniqueId").with_disp_val(&expr.unique_id_in_definition); self.kv(indent2).with_s_key("ToType") .with_custom_val(|t| write_parser_type(t, heap, &expr.to_type)); self.kv(indent2).with_s_key("Subject"); @@ -771,6 +781,7 @@ impl ASTWriter { self.kv(indent).with_id(PREFIX_CALL_EXPR_ID, expr.this.0.index) .with_s_key("CallExpr"); + self.kv(indent2).with_s_key("UniqueId").with_disp_val(&expr.unique_id_in_definition); let definition = &heap[expr.definition]; match definition { Definition::Component(definition) => { @@ -800,6 +811,7 @@ impl ASTWriter { Expression::Variable(expr) => { self.kv(indent).with_id(PREFIX_VARIABLE_EXPR_ID, expr.this.0.index) .with_s_key("VariableExpr"); + self.kv(indent2).with_s_key("UniqueId").with_disp_val(&expr.unique_id_in_definition); self.kv(indent2).with_s_key("Name").with_identifier_val(&expr.identifier); self.kv(indent2).with_s_key("Definition") .with_opt_disp_val(expr.declaration.as_ref().map(|v| &v.index));