diff options
author | Nobuyoshi Nakada <[email protected]> | 2020-10-26 18:00:24 +0900 |
---|---|---|
committer | GitHub <[email protected]> | 2020-10-26 18:00:24 +0900 |
commit | 52c630da004d9273e8e5fc91c6304e9eed902566 (patch) | |
tree | 8414c98aa099355174ca6525757128d560ce5f8a /spec/ruby | |
parent | cffdacb15a363321e1c1879aa7d94924acafd1cf (diff) |
Assoc pattern matching (#3703)
[Feature #17260] One-line pattern matching using tASSOC
R-assignment is rejected instead.
Notes
Notes:
Merged-By: nobu <[email protected]>
Diffstat (limited to 'spec/ruby')
-rw-r--r-- | spec/ruby/command_line/dash_upper_w_spec.rb | 4 | ||||
-rw-r--r-- | spec/ruby/command_line/rubyopt_spec.rb | 4 | ||||
-rw-r--r-- | spec/ruby/core/warning/element_set_spec.rb | 4 | ||||
-rw-r--r-- | spec/ruby/language/pattern_matching_spec.rb | 12 |
4 files changed, 13 insertions, 11 deletions
diff --git a/spec/ruby/command_line/dash_upper_w_spec.rb b/spec/ruby/command_line/dash_upper_w_spec.rb index 8343bc08e4..2b617f9f7f 100644 --- a/spec/ruby/command_line/dash_upper_w_spec.rb +++ b/spec/ruby/command_line/dash_upper_w_spec.rb @@ -32,10 +32,10 @@ ruby_version_is "2.7" do describe "The -W command line option with :no-experimental" do it "suppresses experimental warnings" do - result = ruby_exe('0 in a', args: '2>&1') + result = ruby_exe('case 0; in a; end', args: '2>&1') result.should =~ /is experimental/ - result = ruby_exe('0 in a', options: '-W:no-experimental', args: '2>&1') + result = ruby_exe('case 0; in a; end', options: '-W:no-experimental', args: '2>&1') result.should == "" end end diff --git a/spec/ruby/command_line/rubyopt_spec.rb b/spec/ruby/command_line/rubyopt_spec.rb index ee4e594a1c..a739f23eb8 100644 --- a/spec/ruby/command_line/rubyopt_spec.rb +++ b/spec/ruby/command_line/rubyopt_spec.rb @@ -68,13 +68,13 @@ describe "Processing RUBYOPT" do it "suppresses experimental warnings for '-W:no-experimental'" do ENV["RUBYOPT"] = '-W:no-experimental' - result = ruby_exe('0 in a', args: '2>&1') + result = ruby_exe('case 0; in a; end', args: '2>&1') result.should == "" end it "suppresses deprecation and experimental warnings for '-W:no-deprecated -W:no-experimental'" do ENV["RUBYOPT"] = '-W:no-deprecated -W:no-experimental' - result = ruby_exe('($; = "") in a', args: '2>&1') + result = ruby_exe('case ($; = ""); in a; end', args: '2>&1') result.should == "" end end diff --git a/spec/ruby/core/warning/element_set_spec.rb b/spec/ruby/core/warning/element_set_spec.rb index ee83656cb4..a6b28282a0 100644 --- a/spec/ruby/core/warning/element_set_spec.rb +++ b/spec/ruby/core/warning/element_set_spec.rb @@ -8,8 +8,8 @@ ruby_version_is '2.7' do end it "emits and suppresses warnings for :experimental" do - ruby_exe('Warning[:experimental] = true; eval("0 in a")', args: "2>&1").should =~ /is experimental/ - ruby_exe('Warning[:experimental] = false; eval("0 in a")', args: "2>&1").should == "" + ruby_exe('Warning[:experimental] = true; eval("case 0; in a; end")', args: "2>&1").should =~ /is experimental/ + ruby_exe('Warning[:experimental] = false; eval("case 0; in a; end")', args: "2>&1").should == "" end it "raises for unknown category" do diff --git a/spec/ruby/language/pattern_matching_spec.rb b/spec/ruby/language/pattern_matching_spec.rb index 91ad23bf32..2d22ec7e64 100644 --- a/spec/ruby/language/pattern_matching_spec.rb +++ b/spec/ruby/language/pattern_matching_spec.rb @@ -9,11 +9,13 @@ ruby_version_is "2.7" do ScratchPad.record [] end - it "can be standalone in operator that deconstructs value" do - eval(<<-RUBY).should == [0, 1] - [0, 1] in [a, b] - [a, b] - RUBY + ruby_version_is "3.0" do + it "can be standalone assoc operator that deconstructs value" do + eval(<<-RUBY).should == [0, 1] + [0, 1] => [a, b] + [a, b] + RUBY + end end it "extends case expression with case/in construction" do |