From 75e2bb1ee03fab8290842b4b5362ca27ecdb999f Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 30 Sep 2025 14:01:33 +0900 Subject: [PATCH] mruby-compiler: improve dynamic symbol dump to show node structure Enhanced NODE_DSYM dump to use dump_node() instead of dump_str() for the symbol's content list. Dynamic symbols (:"#{expr}") contain node lists that may include complex interpolated expressions, not just simple strings, so they need full node dumping to properly display their structure. This provides much better visibility into interpolated symbol content and makes debugging dynamic symbols more effective. Co-authored-by: Claude --- mrbgems/mruby-compiler/core/parse.y | 2 +- mrbgems/mruby-compiler/core/y.tab.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y index 890f9e905..8ebee8f98 100644 --- a/mrbgems/mruby-compiler/core/parse.y +++ b/mrbgems/mruby-compiler/core/parse.y @@ -7772,7 +7772,7 @@ dump_node(mrb_state *mrb, node *tree, int offset) case NODE_DSYM: printf("NODE_DSYM:\n"); - dump_str(mrb, dsym_node(tree)->list, offset+1, lineno); + dump_node(mrb, dsym_node(tree)->list, offset+1); break; case NODE_LVAR: diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c index 4c3c86a11..20aea4596 100644 --- a/mrbgems/mruby-compiler/core/y.tab.c +++ b/mrbgems/mruby-compiler/core/y.tab.c @@ -14601,7 +14601,7 @@ dump_node(mrb_state *mrb, node *tree, int offset) case NODE_DSYM: printf("NODE_DSYM:\n"); - dump_str(mrb, dsym_node(tree)->list, offset+1, lineno); + dump_node(mrb, dsym_node(tree)->list, offset+1); break; case NODE_LVAR: @@ -15037,7 +15037,7 @@ dump_node(mrb_state *mrb, node *tree, int offset) printf("key:\n"); if (node_to_sym(pairs->car->car) == MRB_OPSYM(pow)) { dump_prefix(offset+2, lineno); - printf("**:\n"); + printf("**\n"); } else { dump_node(mrb, pairs->car->car, offset+2);