| ... | @@ -3036,15 +3036,21 @@ AstNode *ast_clone_subtree(AstNode *old_node, uint32_t *next_node_index) { | ... | @@ -3036,15 +3036,21 @@ AstNode *ast_clone_subtree(AstNode *old_node, uint32_t *next_node_index) { |
| 3036 | // none | 3036 | // none |
| 3037 | break; | 3037 | break; |
| 3038 | case NodeTypePrefixOpExpr: | 3038 | case NodeTypePrefixOpExpr: |
| 3039 | clone_subtree_field(&new_node->data.prefix_op_expr.primary_expr, old_node->data.prefix_op_expr.primary_expr, next_node_index); | 3039 | clone_subtree_field(&new_node->data.prefix_op_expr.primary_expr, |
| | 3040 | old_node->data.prefix_op_expr.primary_expr, next_node_index); |
| 3040 | break; | 3041 | break; |
| 3041 | case NodeTypeFnCallExpr: | 3042 | case NodeTypeFnCallExpr: |
| 3042 | clone_subtree_field(&new_node->data.fn_call_expr.fn_ref_expr, old_node->data.fn_call_expr.fn_ref_expr, next_node_index); | 3043 | assert(!old_node->data.fn_call_expr.resolved_expr.has_global_const); |
| 3043 | clone_subtree_list(&new_node->data.fn_call_expr.params, &old_node->data.fn_call_expr.params, next_node_index); | 3044 | clone_subtree_field(&new_node->data.fn_call_expr.fn_ref_expr, |
| | 3045 | old_node->data.fn_call_expr.fn_ref_expr, next_node_index); |
| | 3046 | clone_subtree_list(&new_node->data.fn_call_expr.params, |
| | 3047 | &old_node->data.fn_call_expr.params, next_node_index); |
| 3044 | break; | 3048 | break; |
| 3045 | case NodeTypeArrayAccessExpr: | 3049 | case NodeTypeArrayAccessExpr: |
| 3046 | clone_subtree_field(&new_node->data.array_access_expr.array_ref_expr, old_node->data.array_access_expr.array_ref_expr, next_node_index); | 3050 | clone_subtree_field(&new_node->data.array_access_expr.array_ref_expr, |
| 3047 | clone_subtree_field(&new_node->data.array_access_expr.subscript, old_node->data.array_access_expr.subscript, next_node_index); | 3051 | old_node->data.array_access_expr.array_ref_expr, next_node_index); |
| | 3052 | clone_subtree_field(&new_node->data.array_access_expr.subscript, |
| | 3053 | old_node->data.array_access_expr.subscript, next_node_index); |
| 3048 | break; | 3054 | break; |
| 3049 | case NodeTypeSliceExpr: | 3055 | case NodeTypeSliceExpr: |
| 3050 | clone_subtree_field(&new_node->data.slice_expr.array_ref_expr, old_node->data.slice_expr.array_ref_expr, next_node_index); | 3056 | clone_subtree_field(&new_node->data.slice_expr.array_ref_expr, old_node->data.slice_expr.array_ref_expr, next_node_index); |