diff options
author | nagachika <nagachika@ruby-lang.org> | 2023-02-23 14:36:37 +0900 |
---|---|---|
committer | nagachika <nagachika@ruby-lang.org> | 2023-02-23 14:36:37 +0900 |
commit | 536f5ba0d48c033e63398d1751aebd0a11bcc6ff (patch) | |
tree | 9a9def632d54ae3b83565ce821b9baabd6e43c83 /parse.y | |
parent | d485a5dc783e23de28fb9eab7fc6c12ae5c35a23 (diff) |
merge revision(s) 3ddf6ad4d2f6dae4caa00b8c407768c7062099a0: [Backport #18629]
Private local variables should shadow outer variables [Bug #18629]
---
parse.y | 3 ++-
test/ruby/test_parse.rb | 4 ++++
2 files changed, 6 insertions(+), 1 deletion(-)
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -10984,9 +10984,9 @@ is_private_local_id(ID name) static int shadowing_lvar_0(struct parser_params *p, ID name) { - if (is_private_local_id(name)) return 1; if (dyna_in_block(p)) { if (dvar_curr(p, name)) { + if (is_private_local_id(name)) return 1; yyerror0("duplicated argument name"); } else if (dvar_defined(p, name) || local_id(p, name)) { @@ -10999,6 +10999,7 @@ shadowing_lvar_0(struct parser_params *p, ID name) } else { if (local_id(p, name)) { + if (is_private_local_id(name)) return 1; yyerror0("duplicated argument name"); } } |