diff options
Diffstat (limited to 'test/ruby/test_syntax.rb')
-rw-r--r-- | test/ruby/test_syntax.rb | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb index 6209bb3a23..31175ebae9 100644 --- a/test/ruby/test_syntax.rb +++ b/test/ruby/test_syntax.rb @@ -1439,26 +1439,29 @@ eom end def test_numbered_parameter - assert_valid_syntax('proc {@1}') - assert_equal(3, eval('[1,2].then {@1+@2}')) - assert_equal("12", eval('[1,2].then {"#@1#@2"}')) - assert_equal(3, eval('->{@1+@2}.call(1,2)')) - assert_equal(4, eval('->(a=->{@1}){a}.call.call(4)')) - assert_equal(5, eval('-> a: ->{@1} {a}.call.call(5)')) - assert_syntax_error('proc {|| @1}', /ordinary parameter is defined/) - assert_syntax_error('proc {|;a| @1}', /ordinary parameter is defined/) - assert_syntax_error("proc {|\n| @1}", /ordinary parameter is defined/) - assert_syntax_error('proc {|x| @1}', /ordinary parameter is defined/) - assert_syntax_error('->(){@1}', /ordinary parameter is defined/) - assert_syntax_error('->(x){@1}', /ordinary parameter is defined/) - assert_syntax_error('->x{@1}', /ordinary parameter is defined/) - assert_syntax_error('->x:@2{}', /ordinary parameter is defined/) - assert_syntax_error('->x=@1{}', /ordinary parameter is defined/) - assert_syntax_error('proc {@1 = nil}', /Can't assign to numbered parameter @1/) - assert_syntax_error('proc {@01}', /leading zero/) - assert_syntax_error('proc {@1_}', /unexpected/) - assert_syntax_error('proc {@9999999999999999}', /too large/) - assert_syntax_error('@1', /outside block/) + assert_valid_syntax('proc {_1}') + assert_equal(3, eval('[1,2].then {_1+_2}')) + assert_equal("12", eval('[1,2].then {"#{_1}#{_2}"}')) + assert_equal([1, 2], eval('[1,2].then {_0}')) + assert_equal(3, eval('->{_1+_2}.call(1,2)')) + assert_equal(4, eval('->(a=->{_1}){a}.call.call(4)')) + assert_equal(5, eval('-> a: ->{_1} {a}.call.call(5)')) + assert_syntax_error('proc {|| _0}', /ordinary parameter is defined/) + assert_syntax_error('proc {|| _1}', /ordinary parameter is defined/) + assert_syntax_error('proc {|;a| _1}', /ordinary parameter is defined/) + assert_syntax_error("proc {|\n| _1}", /ordinary parameter is defined/) + assert_syntax_error('proc {|x| _1}', /ordinary parameter is defined/) + assert_syntax_error('proc {_0+_1}', /implicit parameter is used/) + assert_syntax_error('proc {_1+_0}', /numbered parameter is used/) + assert_syntax_error('->(){_0}', /ordinary parameter is defined/) + assert_syntax_error('->(){_1}', /ordinary parameter is defined/) + assert_syntax_error('->(x){_1}', /ordinary parameter is defined/) + assert_syntax_error('->x{_1}', /ordinary parameter is defined/) + assert_syntax_error('->x:_2{}', /ordinary parameter is defined/) + assert_syntax_error('->x=_1{}', /ordinary parameter is defined/) + assert_syntax_error('-> {_0+_1}', /implicit parameter is used/) + assert_syntax_error('-> {_1+_0}', /numbered parameter is used/) + assert_warn(/`_1' is used as numbered parameter/) {eval('proc {_1 = nil}')} assert_warn(/`_2' is used as numbered parameter/) {eval('_2=1')} end |