Skip to content

Commit

Permalink
Import language/pattern_matching_spec
Browse files Browse the repository at this point in the history
We are finally able to run the first few tests.
  • Loading branch information
herwinw committed Jun 23, 2024
1 parent 8b27634 commit cca5abd
Show file tree
Hide file tree
Showing 2 changed files with 1,286 additions and 0 deletions.
76 changes: 76 additions & 0 deletions spec/language/pattern_matching/3.1.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
describe "Pattern matching" do
before :each do
ScratchPad.record []
end

# NATFIXME: Handle Prism::CaseMatchNode
describe "Ruby 3.1 improvements" do
ruby_version_is "3.1" do
xit "can omit parentheses in one line pattern matching" do
#[1, 2] => a, b
#[a, b].should == [1, 2]

#{a: 1} => a:
#a.should == 1
end

xit "supports pinning instance variables" do
#@a = /a/
#case 'abc'
#in ^@a
#true
#end.should == true
end

xit "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

xit "supports pinning global variables" do
#$a = /a/
#case 'abc'
#in ^$a
#true
#end.should == true
end

xit "supports pinning expressions" do
#case 'abc'
#in ^(/a/)
#true
#end.should == true

#case 0
#in ^(0 + 0)
#true
#end.should == true
end

xit "supports pinning expressions in array pattern" do
#case [3]
#in [^(1 + 2)]
#true
#end.should == true
end

xit "supports pinning expressions in hash pattern" do
#case {name: '2.6', released_at: Time.new(2018, 12, 25)}
#in {released_at: ^(Time.new(2010)..Time.new(2020))}
#true
#end.should == true
end
end
end
end
Loading

0 comments on commit cca5abd

Please sign in to comment.