mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
parse.y: workaround for warnings
* parse.y (mark_lvar_used): enable workaround to suppress unused local variables. [ruby-core:82656] [Bug #13872] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
8bd7c8cbc8
commit
f644d3ef67
2 changed files with 35 additions and 0 deletions
34
parse.y
34
parse.y
|
@ -9927,6 +9927,33 @@ splat_array(NODE* node)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
mark_lvar_used(struct parser_params *parser, NODE *rhs)
|
||||
{
|
||||
ID *vidp = NULL;
|
||||
if (!rhs) return;
|
||||
switch (nd_type(rhs)) {
|
||||
case NODE_LASGN:
|
||||
if (local_id_ref(rhs->nd_vid, vidp)) {
|
||||
if (vidp) *vidp |= LVAR_USED;
|
||||
}
|
||||
break;
|
||||
case NODE_DASGN:
|
||||
case NODE_DASGN_CURR:
|
||||
if (dvar_defined_ref(rhs->nd_vid, vidp)) {
|
||||
if (vidp) *vidp |= LVAR_USED;
|
||||
}
|
||||
break;
|
||||
#if 0
|
||||
case NODE_MASGN:
|
||||
for (rhs = rhs->nd_head; rhs; rhs = rhs->nd_next) {
|
||||
mark_lvar_used(parser, rhs->nd_head);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
static NODE *
|
||||
node_assign_gen(struct parser_params *parser, NODE *lhs, NODE *rhs, int column)
|
||||
{
|
||||
|
@ -10007,6 +10034,13 @@ value_expr_gen(struct parser_params *parser, NODE *node)
|
|||
node = node->nd_2nd;
|
||||
break;
|
||||
|
||||
case NODE_LASGN:
|
||||
case NODE_DASGN:
|
||||
case NODE_DASGN_CURR:
|
||||
case NODE_MASGN:
|
||||
mark_lvar_used(parser, node);
|
||||
return TRUE;
|
||||
|
||||
default:
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -890,6 +890,7 @@ x = __ENCODING__
|
|||
assert_warning(/#{a}/) {o.instance_eval("def foo; #{a}=1; nil; end")}
|
||||
o = Object.new
|
||||
assert_warning(/assigned but unused variable/) {o.instance_eval("def foo; tap {a=1; a()}; end")}
|
||||
assert_warning('') {o.instance_eval("def bar; a=a=1; nil; end")}
|
||||
end
|
||||
|
||||
def test_named_capture_conflict
|
||||
|
|
Loading…
Add table
Reference in a new issue