Fix and remove spec testing undefined behavior

This commit is contained in:
Kazuki Tsujimoto 2020-11-07 22:05:20 +09:00
Родитель 5b3572b5ae
Коммит 640fd94eff
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: BCEA306C49B81CD7
1 изменённых файлов: 8 добавлений и 34 удалений

Просмотреть файл

@ -316,26 +316,26 @@ ruby_version_is "2.7" do
end end
it "supports using _ in a pattern several times" do it "supports using _ in a pattern several times" do
eval(<<~RUBY).should == 2 eval(<<~RUBY).should == true
case [0, 1, 2] case [0, 1, 2]
in [0, _, _] in [0, _, _]
_ true
end end
RUBY RUBY
end end
it "supports using any name with _ at the beginning in a pattern several times" do 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] case [0, 1, 2]
in [0, _x, _x] in [0, _x, _x]
_x true
end end
RUBY RUBY
eval(<<~RUBY).should == 2 eval(<<~RUBY).should == true
case {a: 0, b: 1, c: 2} case {a: 0, b: 1, c: 2}
in {a: 0, b: _x, c: _x} in {a: 0, b: _x, c: _x}
_x true
end end
RUBY RUBY
end end
@ -569,19 +569,6 @@ ruby_version_is "2.7" do
RUBY RUBY
end 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 it "supports splat operator *rest" do
eval(<<~RUBY).should == [1, 2] eval(<<~RUBY).should == [1, 2]
case [0, 1, 2] case [0, 1, 2]
@ -870,7 +857,7 @@ ruby_version_is "2.7" do
end end
RUBY RUBY
ScratchPad.recorded.should == [[[:a, :b, :c]]] ScratchPad.recorded.sort.should == [[[:a, :b, :c]]]
end end
it "passes keys specified in pattern to #deconstruct_keys method if pattern contains double splat operator **" do 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 end
RUBY RUBY
ScratchPad.recorded.should == [[[:a, :b]]] ScratchPad.recorded.sort.should == [[[:a, :b]]]
end end
it "passes nil to #deconstruct_keys method if pattern contains double splat operator **rest" do 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 RUBY
end 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 it "supports double splat operator **rest" do
eval(<<~RUBY).should == {b: 1, c: 2} eval(<<~RUBY).should == {b: 1, c: 2}
case {a: 0, b: 1, c: 2} case {a: 0, b: 1, c: 2}