mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
mruby-compiler: remove unused NODE_KW_HASH node type
Eliminates NODE_KW_HASH enum, mrb_ast_kw_hash_node struct, gen_kw_hash_var function, and related macros. All keyword hash functionality now unified under NODE_HASH, completing the AST simplification. Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -5431,19 +5431,6 @@ gen_lambda_var(codegen_scope *s, node *varnode, int val)
|
||||
push();
|
||||
}
|
||||
|
||||
static void
|
||||
gen_kw_hash_var(codegen_scope *s, node *varnode, int val)
|
||||
{
|
||||
struct mrb_ast_kw_hash_node *n = kw_hash_node(varnode);
|
||||
|
||||
int nk = gen_hash(s, n->args, val, GEN_LIT_ARY_MAX);
|
||||
if (val && nk >= 0) {
|
||||
pop_n(nk*2);
|
||||
genop_2(s, OP_HASH, cursp(), nk);
|
||||
push();
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gen_words_var(codegen_scope *s, node *varnode, int val)
|
||||
{
|
||||
@@ -5920,10 +5907,6 @@ codegen(codegen_scope *s, node *tree, int val)
|
||||
gen_lambda_var(s, tree, val);
|
||||
break;
|
||||
|
||||
case NODE_KW_HASH:
|
||||
gen_kw_hash_var(s, tree, val);
|
||||
break;
|
||||
|
||||
case NODE_WORDS:
|
||||
gen_words_var(s, tree, val);
|
||||
break;
|
||||
|
||||
@@ -37,7 +37,6 @@ enum node_type {
|
||||
NODE_ARRAY,
|
||||
NODE_ZARRAY,
|
||||
NODE_HASH,
|
||||
NODE_KW_HASH,
|
||||
NODE_RETURN,
|
||||
NODE_YIELD,
|
||||
NODE_LVAR,
|
||||
@@ -799,11 +798,6 @@ struct mrb_ast_zarray_node {
|
||||
struct mrb_ast_var_header hdr;
|
||||
};
|
||||
|
||||
struct mrb_ast_kw_hash_node {
|
||||
struct mrb_ast_var_header hdr;
|
||||
struct mrb_ast_node *args;
|
||||
};
|
||||
|
||||
struct mrb_ast_words_node {
|
||||
struct mrb_ast_var_header hdr;
|
||||
struct mrb_ast_node *args;
|
||||
@@ -898,7 +892,6 @@ struct mrb_ast_postexe_node {
|
||||
#define zsuper_node(n) ((struct mrb_ast_super_node*)(n))
|
||||
#define lambda_node(n) ((struct mrb_ast_lambda_node*)(n))
|
||||
#define zarray_node(n) ((struct mrb_ast_zarray_node*)(n))
|
||||
#define kw_hash_node(n) ((struct mrb_ast_kw_hash_node*)(n))
|
||||
#define words_node(n) ((struct mrb_ast_words_node*)(n))
|
||||
#define symbols_node(n) ((struct mrb_ast_symbols_node*)(n))
|
||||
#define splat_node(n) ((struct mrb_ast_splat_node*)(n))
|
||||
@@ -920,7 +913,6 @@ struct mrb_ast_postexe_node {
|
||||
#define LAMBDA_NODE_LOCALS(n) (lambda_node(n)->locals)
|
||||
#define LAMBDA_NODE_ARGS(n) (lambda_node(n)->args)
|
||||
#define LAMBDA_NODE_BODY(n) (lambda_node(n)->body)
|
||||
#define KW_HASH_NODE_ARGS(n) (kw_hash_node(n)->args)
|
||||
#define WORDS_NODE_ARGS(n) (words_node(n)->args)
|
||||
#define SYMBOLS_NODE_ARGS(n) (symbols_node(n)->args)
|
||||
#define SPLAT_NODE_VALUE(n) (splat_node(n)->value)
|
||||
|
||||
@@ -7885,19 +7885,6 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
}
|
||||
break;
|
||||
|
||||
case NODE_KW_HASH:
|
||||
printf("NODE_KW_HASH:\n");
|
||||
while (tree) {
|
||||
dump_prefix(tree, offset+1);
|
||||
printf("key:\n");
|
||||
mrb_parser_dump(mrb, tree->car->car, offset+2);
|
||||
dump_prefix(tree, offset+1);
|
||||
printf("value:\n");
|
||||
mrb_parser_dump(mrb, tree->car->cdr, offset+2);
|
||||
tree = tree->cdr;
|
||||
}
|
||||
break;
|
||||
|
||||
case NODE_SPLAT:
|
||||
printf("NODE_SPLAT:\n");
|
||||
mrb_parser_dump(mrb, tree, offset+1);
|
||||
|
||||
@@ -14714,19 +14714,6 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
|
||||
}
|
||||
break;
|
||||
|
||||
case NODE_KW_HASH:
|
||||
printf("NODE_KW_HASH:\n");
|
||||
while (tree) {
|
||||
dump_prefix(tree, offset+1);
|
||||
printf("key:\n");
|
||||
mrb_parser_dump(mrb, tree->car->car, offset+2);
|
||||
dump_prefix(tree, offset+1);
|
||||
printf("value:\n");
|
||||
mrb_parser_dump(mrb, tree->car->cdr, offset+2);
|
||||
tree = tree->cdr;
|
||||
}
|
||||
break;
|
||||
|
||||
case NODE_SPLAT:
|
||||
printf("NODE_SPLAT:\n");
|
||||
mrb_parser_dump(mrb, tree, offset+1);
|
||||
|
||||
Reference in New Issue
Block a user