Top level variables aren't checked for assigned but unused behavior
In the following code, variable a in the method gets a warning, but variable b in top level code doesn't get any warning
def warning_method a = 2 end b = 2 warning_method $ ruby -w no_toplevel_warnings.rb no_toplevel_warnings.rb:2: warning: assigned but unused variable - a
It is possible to detect that b is unused if the script is required from another script.
I'd like Ruby to be able to detect that b is an assigned but unused variable.
#1 [ruby-core:51582] Updated by nobu (Nobuyoshi Nakada) about 5 years ago
- File 0001-parse.y-warn-assigned-but-unused-in-toplevel.patch 0001-parse.y-warn-assigned-but-unused-in-toplevel.patch added
Agree except for -e option.
#3 Updated by nobu (Nobuyoshi Nakada) about 5 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r38982.
Andrew, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
parse.y: warn assigned but unused in toplevel
- parse.y (local_push_gen): warn assigned but unused variables also in toplevel, except for -e option. [Feature #7730]