diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2024-04-10 22:44:33 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2024-04-11 12:03:55 +0900 |
commit | 207788466eedfdefcf09fdc5c6217547b5ce4ed1 (patch) | |
tree | e4bc9ebfe2e330f62f90473be14320baf26e6431 | |
parent | 5d9fd674c9ceefd6baffdd05d33c5b60a7c64e42 (diff) |
[Bug #20417] Block local variables do not need to warn about unused
-rw-r--r-- | parse.y | 4 | ||||
-rw-r--r-- | test/ruby/test_ast.rb | 6 |
2 files changed, 10 insertions, 0 deletions
@@ -13814,6 +13814,10 @@ new_bv(struct parser_params *p, ID name) } if (!shadowing_lvar_0(p, name)) return; dyna_var(p, name); + ID *vidp = 0; + if (dvar_defined_ref(p, name, &vidp)) { + if (vidp) *vidp |= LVAR_USED; + } } static void diff --git a/test/ruby/test_ast.rb b/test/ruby/test_ast.rb index 90d19c3d68..29da607fc5 100644 --- a/test/ruby/test_ast.rb +++ b/test/ruby/test_ast.rb @@ -1232,6 +1232,12 @@ dummy EXP end + def test_unused_block_local_variable + assert_warning('') do + RubyVM::AbstractSyntaxTree.parse(%{->(; foo) {}}) + end + end + def assert_error_tolerant(src, expected, keep_tokens: false) begin verbose_bak, $VERBOSE = $VERBOSE, false |