diff options
author | Benoit Daloze <eregontp@gmail.com> | 2022-01-10 16:29:54 +0100 |
---|---|---|
committer | Benoit Daloze <eregontp@gmail.com> | 2022-01-10 16:29:54 +0100 |
commit | 4053e8ba0d39b688440fedee2ab3fffabcd64312 (patch) | |
tree | 8a29366a09cd159798fada68fb1007a2fece5ec6 /spec/ruby/language/pattern_matching_spec.rb | |
parent | 8abfc106058d09840d13f64e7e87cb7e40c3d6fa (diff) |
Update to ruby/spec@226cfdc
Diffstat (limited to 'spec/ruby/language/pattern_matching_spec.rb')
-rw-r--r-- | spec/ruby/language/pattern_matching_spec.rb | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/spec/ruby/language/pattern_matching_spec.rb b/spec/ruby/language/pattern_matching_spec.rb index e4abae9412..5f5e2f4902 100644 --- a/spec/ruby/language/pattern_matching_spec.rb +++ b/spec/ruby/language/pattern_matching_spec.rb @@ -1297,6 +1297,65 @@ ruby_version_is "2.7" do a RUBY end + + it "supports pinning instance variables" do + eval(<<~RUBY).should == true + @a = /a/ + case 'abc' + in ^@a + true + end + RUBY + end + + it "supports pinning class variables" do + result = nil + Module.new do + result = module_eval(<<~RUBY) + @@a = 0..10 + + case 2 + in ^@@a + true + end + RUBY + end + + result.should == true + end + + it "supports pinning global variables" do + eval(<<~RUBY).should == true + $a = /a/ + case 'abc' + in ^$a + true + end + RUBY + end + + it "supports pinning expressions" do + eval(<<~RUBY).should == true + case 'abc' + in ^(/a/) + true + end + RUBY + + eval(<<~RUBY).should == true + case {name: '2.6', released_at: Time.new(2018, 12, 25)} + in {released_at: ^(Time.new(2010)..Time.new(2020))} + true + end + RUBY + + eval(<<~RUBY).should == true + case 0 + in ^(0+0) + true + end + RUBY + end end end end |