From: kuwabara@... Date: 2017-08-13T12:42:13+00:00 Subject: [ruby-core:82368] [Ruby trunk Bug#13809] Unused variable warning does not occur when a method with the same name was called Issue #13809 has been reported by pocke (Masataka Kuwabara). ---------------------------------------- Bug #13809: Unused variable warning does not occur when a method with the same name was called https://bugs.ruby-lang.org/issues/13809 * Author: pocke (Masataka Kuwabara) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux] * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- ## problem ~~~ ruby a = 1 a() ~~~ `a` is unused, but `ruby -cw` does not add warning for this code. ~~~ $ ruby -cw test.rb Syntax OK ~~~ ## Cause The parser changes mode by lvar definition. At that time, parser checks whether lvar is defined that is with same name. https://github.com/ruby/ruby/blob/6ee82564fac2745e45154938b5b75d9f5ab70b58/parse.y#L7886 Then, if lvar with same name is defined, the lvar is marked as used. https://github.com/ruby/ruby/blob/6ee82564fac2745e45154938b5b75d9f5ab70b58/parse.y#L10494 -- https://bugs.ruby-lang.org/ Unsubscribe: