mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Treat :@1, :@@1, @1, and @@1 correctly to check termination
This commit is contained in:
parent
7447c7b651
commit
5e275dd2af
1 changed files with 15 additions and 0 deletions
|
@ -136,6 +136,15 @@ class RubyLex
|
|||
return false
|
||||
elsif @tokens.size >= 2 and @tokens[-2][1] == :on_kw and (@tokens[-2][2] == 'begin' or @tokens[-2][2] == 'else')
|
||||
return false
|
||||
elsif @tokens.size >= 3 and @tokens[-3][1] == :on_symbeg and @tokens[-2][1] == :on_ivar
|
||||
# This is for :@a or :@1 because :@1 ends with EXPR_FNAME
|
||||
return false
|
||||
elsif @tokens.size >= 2 and @tokens[-2][1] == :on_ivar and @tokens[-2][2] =~ /\A@\d+\z/
|
||||
# This is for @1
|
||||
return false
|
||||
elsif @tokens.size >= 2 and @tokens[-2][1] == :on_cvar and @tokens[-1][1] == :on_int
|
||||
# This is for @@1 or :@@1 and ends with on_int because it's syntax error
|
||||
return false
|
||||
elsif !@tokens.empty? and @tokens.last[2] == "\\\n"
|
||||
return true
|
||||
elsif @tokens.size >= 2 and @tokens[-2][3].anybits?(continued_bits)
|
||||
|
@ -199,6 +208,12 @@ class RubyLex
|
|||
# example:
|
||||
# method / f /
|
||||
return false
|
||||
when /numbered parameter outside block/
|
||||
# "numbered parameter outside block"
|
||||
#
|
||||
# example:
|
||||
# :@1
|
||||
return false
|
||||
end
|
||||
ensure
|
||||
$VERBOSE = verbose
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue