aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-09-04 00:07:50 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-09-24 21:57:54 +0900
commitea68bb914a3c806a1c5188993b96791a76ab0849 (patch)
tree085fe4bbf44e546143ba2ee950298bf269785d7a /test/ruby
parente73cc3eead75b27eabf93a7163bed511f2bb3b17 (diff)
downloadruby-ea68bb914a3c806a1c5188993b96791a76ab0849.tar.gz
Changed numbered parameter prefix
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_syntax.rb43
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