public void Scenario_RubyProcYieldArgs3() {
TestOutput(@"
def y0; yield []; end
def y1; yield [1]; end
def y2; yield [1,2]; end
def y3; yield [1,2,3]; end
def y4; yield [1,2,3,4]; end
def y5; yield [1,2,3,4,5]; end
y0 { |x| p [x] }
y0 { |x,y| p [x,y] }
y0 { |x,y,z| p [x,y,z] }
y0 { |x,y,z,u| p [x,y,z,u] }
y0 { |x,y,z,u,v| p [x,y,z,u,v] }
y1 { |x| p [x] }
y1 { |x,y| p [x,y] }
y1 { |x,y,z| p [x,y,z] }
y1 { |x,y,z,u| p [x,y,z,u] }
y1 { |x,y,z,u,v| p [x,y,z,u,v] }
y2 { |x| p [x] }
y2 { |x,y| p [x,y] }
y2 { |x,y,z| p [x,y,z] }
y2 { |x,y,z,u| p [x,y,z,u] }
y2 { |x,y,z,u,v| p [x,y,z,u,v] }
y3 { |x| p [x] }
y3 { |x,y| p [x,y] }
y3 { |x,y,z| p [x,y,z] }
y3 { |x,y,z,u| p [x,y,z,u] }
y3 { |x,y,z,u,v| p [x,y,z,u,v] }
y4 { |x| p [x] }
y4 { |x,y| p [x,y] }
y4 { |x,y,z| p [x,y,z] }
y4 { |x,y,z,u| p [x,y,z,u] }
y4 { |x,y,z,u,v| p [x,y,z,u,v] }
y5 { |x| p [x] }
y5 { |x,y| p [x,y] }
y5 { |x,y,z| p [x,y,z] }
y5 { |x,y,z,u| p [x,y,z,u] }
y5 { |x,y,z,u,v| p [x,y,z,u,v] }
", @"
[[]]
[nil, nil]
[nil, nil, nil]
[nil, nil, nil, nil]
[nil, nil, nil, nil, nil]
[[1]]
[1, nil]
[1, nil, nil]
[1, nil, nil, nil]
[1, nil, nil, nil, nil]
[[1, 2]]
[1, 2]
[1, 2, nil]
[1, 2, nil, nil]
[1, 2, nil, nil, nil]
[[1, 2, 3]]
[1, 2]
[1, 2, 3]
[1, 2, 3, nil]
[1, 2, 3, nil, nil]
[[1, 2, 3, 4]]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
[1, 2, 3, 4, nil]
[[1, 2, 3, 4, 5]]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
");
}