summaryrefslogtreecommitdiff
path: root/spec/ruby/language/pattern_matching_spec.rb
diff options
context:
space:
mode:
authorKazuki Tsujimoto <kazuki@callcc.net>2020-11-07 22:05:20 +0900
committerKazuki Tsujimoto <kazuki@callcc.net>2020-11-07 22:05:20 +0900
commit640fd94effab28fa3d90ecb838d9702e1dea9b9c (patch)
treeed5e8c6a9822dea8dd34f440041e086a3c8c09a7 /spec/ruby/language/pattern_matching_spec.rb
parent5b3572b5aec742a2a6355f0212a84759983a6b4e (diff)
Fix and remove spec testing undefined behavior
Diffstat (limited to 'spec/ruby/language/pattern_matching_spec.rb')
-rw-r--r--spec/ruby/language/pattern_matching_spec.rb42
1 files changed, 8 insertions, 34 deletions
diff --git a/spec/ruby/language/pattern_matching_spec.rb b/spec/ruby/language/pattern_matching_spec.rb
index e82b0f5b3c..e34ff2db22 100644
--- a/spec/ruby/language/pattern_matching_spec.rb
+++ b/spec/ruby/language/pattern_matching_spec.rb
@@ -316,26 +316,26 @@ ruby_version_is "2.7" do
end
it "supports using _ in a pattern several times" do
- eval(<<~RUBY).should == 2
+ eval(<<~RUBY).should == true
case [0, 1, 2]
in [0, _, _]
- _
+ true
end
RUBY
end
it "supports using any name with _ at the beginning in a pattern several times" do
- eval(<<~RUBY).should == 2
+ eval(<<~RUBY).should == true
case [0, 1, 2]
in [0, _x, _x]
- _x
+ true
end
RUBY
- eval(<<~RUBY).should == 2
+ eval(<<~RUBY).should == true
case {a: 0, b: 1, c: 2}
in {a: 0, b: _x, c: _x}
- _x
+ true
end
RUBY
end
@@ -569,19 +569,6 @@ ruby_version_is "2.7" do
RUBY
end
- it "binds variable even if patter matches only partially" do
- a = nil
-
- eval(<<~RUBY).should == 0
- case [0, 1, 2]
- in [a, 1, 3]
- else
- end
-
- a
- RUBY
- end
-
it "supports splat operator *rest" do
eval(<<~RUBY).should == [1, 2]
case [0, 1, 2]
@@ -870,7 +857,7 @@ ruby_version_is "2.7" do
end
RUBY
- ScratchPad.recorded.should == [[[:a, :b, :c]]]
+ ScratchPad.recorded.sort.should == [[[:a, :b, :c]]]
end
it "passes keys specified in pattern to #deconstruct_keys method if pattern contains double splat operator **" do
@@ -887,7 +874,7 @@ ruby_version_is "2.7" do
end
RUBY
- ScratchPad.recorded.should == [[[:a, :b]]]
+ ScratchPad.recorded.sort.should == [[[:a, :b]]]
end
it "passes nil to #deconstruct_keys method if pattern contains double splat operator **rest" do
@@ -916,19 +903,6 @@ ruby_version_is "2.7" do
RUBY
end
- it "binds variable even if pattern matches only partially" do
- x = nil
-
- eval(<<~RUBY).should == 0
- case {a: 0, b: 1}
- in {a: x, b: 2}
- else
- end
-
- x
- RUBY
- end
-
it "supports double splat operator **rest" do
eval(<<~RUBY).should == {b: 1, c: 2}
case {a: 0, b: 1, c: 2}