From: merch-redmine@... Date: 2019-08-27T19:02:28+00:00 Subject: [ruby-core:94617] [Ruby master Bug#15188] Incorrect warning "assigned but unused variable" when using ripper with $VERBOSE = true Issue #15188 has been updated by jeremyevans0 (Jeremy Evans). File ripper-assign-unused-15188.patch added Ripper doesn't track usage of local variables as far as I can see. In `parse.y`, `LVAR_USED` is used to mark local variables as being used. In normal compilation mode, this is set by `mark_lvar_used`, called by `value_expr_check`, called by `value_expr_gen` (aliased to `value_expr`). In ripper mode, `#define value_expr(node) ((void)(node))`. It seems best to just not attempt to print unused variable warnings in ripper, which the attached patch does. ---------------------------------------- Bug #15188: Incorrect warning "assigned but unused variable" when using ripper with $VERBOSE = true https://bugs.ruby-lang.org/issues/15188#change-81202 * Author: cout (Paul Brannan) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux] * Backport: 2.3: DONTNEED, 2.4: DONTNEED, 2.5: REQUIRED ---------------------------------------- The following code: require 'ripper' class Parser < Ripper def warn(fmt, *args) puts "#{filename}:#{lineno} - #{fmt % args}" end end if __FILE__ == $0 then $VERBOSE = true s = 'foo = 42; p foo' parser = Parser.new(s) parser.parse end produces this warning: (ripper):1 - assigned but unused variable - foo but clearly foo is not unused. ---Files-------------------------------- ripper-assign-unused-15188.patch (1004 Bytes) -- https://bugs.ruby-lang.org/ Unsubscribe: