Convert a series of else if lines to a switch

This commit is contained in:
Nobuyoshi Nakada 2024-01-09 18:47:15 +09:00
parent 149373ce7f
commit 38bc107f0b
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465

25
parse.y
View File

@ -174,28 +174,23 @@ node_cdhash_cmp(VALUE val, VALUE lit)
if (type_val != type_lit) { if (type_val != type_lit) {
return -1; return -1;
} }
else if (type_lit == NODE_INTEGER) {
switch (type_lit) {
case NODE_INTEGER:
return node_integer_cmp(RNODE_INTEGER(node_val), RNODE_INTEGER(node_lit)); return node_integer_cmp(RNODE_INTEGER(node_val), RNODE_INTEGER(node_lit));
} case NODE_FLOAT:
else if (type_lit == NODE_FLOAT) {
return node_float_cmp(RNODE_FLOAT(node_val), RNODE_FLOAT(node_lit)); return node_float_cmp(RNODE_FLOAT(node_val), RNODE_FLOAT(node_lit));
} case NODE_RATIONAL:
else if (type_lit == NODE_RATIONAL) {
return node_rational_cmp(RNODE_RATIONAL(node_val), RNODE_RATIONAL(node_lit)); return node_rational_cmp(RNODE_RATIONAL(node_val), RNODE_RATIONAL(node_lit));
} case NODE_IMAGINARY:
else if (type_lit == NODE_IMAGINARY) {
return node_imaginary_cmp(RNODE_IMAGINARY(node_val), RNODE_IMAGINARY(node_lit)); return node_imaginary_cmp(RNODE_IMAGINARY(node_val), RNODE_IMAGINARY(node_lit));
} case NODE_SYM:
else if (type_lit == NODE_SYM) {
return rb_parser_string_hash_cmp(RNODE_SYM(node_val)->string, RNODE_SYM(node_lit)->string); return rb_parser_string_hash_cmp(RNODE_SYM(node_val)->string, RNODE_SYM(node_lit)->string);
} case NODE_LINE:
else if (type_lit == NODE_LINE) {
return node_val->nd_loc.beg_pos.lineno != node_lit->nd_loc.beg_pos.lineno; return node_val->nd_loc.beg_pos.lineno != node_lit->nd_loc.beg_pos.lineno;
} case NODE_FILE:
else if (type_lit == NODE_FILE) {
return rb_parser_string_hash_cmp(RNODE_FILE(node_val)->path, RNODE_FILE(node_lit)->path); return rb_parser_string_hash_cmp(RNODE_FILE(node_val)->path, RNODE_FILE(node_lit)->path);
} default:
else {
rb_bug("unexpected node: %s, %s", ruby_node_name(type_val), ruby_node_name(type_lit)); rb_bug("unexpected node: %s, %s", ruby_node_name(type_val), ruby_node_name(type_lit));
} }
} }