зеркало из https://github.com/github/ruby.git
Fix and remove spec testing undefined behavior
This commit is contained in:
Родитель
5b3572b5ae
Коммит
640fd94eff
|
@ -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}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче