public void Block_ProcParams1() {
TestOutput(@"
lambda { |&q| p [q.class] }.() {}
lambda { |a,&q| p [a,q.class] }.(1) {}
lambda { |a,b,&q| p [a,b,q.class] }.(1,2) {}
lambda { |a,b,c,&q| p [a,b,c,q.class] }.(1,2,3) {}
lambda { |a,b,c,d,&q| p [a,b,c,d,q.class] }.(1,2,3,4) {}
lambda { |a,b,c,d,e,f,g,&q| p [a,b,c,d,e,f,g,q.class] }.(1,2,3,4,5,6,7) {}
lambda { |&q| p [q.class] }.()
lambda { |a,&q| p [a,q.class] }.(1)
lambda { |a,b,&q| p [a,b,q.class] }.(1,2)
lambda { |a,b,c,&q| p [a,b,c,q.class] }.(1,2,3)
lambda { |a,b,c,d,&q| p [a,b,c,d,q.class] }.(1,2,3,4)
lambda { |a,b,c,d,e,f,g,&q| p [a,b,c,d,e,f,g,q.class] }.(1,2,3,4,5,6,7)
lambda { |a,*b,&q| p [a,b,q.class] }.(1,2)
lambda { |a,b,*c,&q| p [a,b,c,q.class] }.(1,2,3)
lambda { |a,b,c,*d,&q| p [a,b,c,d,q.class] }.(1,2,3,4)
lambda { |a,b,c,d,*e,&q| p [a,b,c,d,q.class] }.(1,2,3,4)
lambda { |a,b,c,d,e,f,*g,&q| p [a,b,c,d,e,f,g,q.class] }.(1,2,3,4,5,6,7)
", @"
[Proc]
[1, Proc]
[1, 2, Proc]
[1, 2, 3, Proc]
[1, 2, 3, 4, Proc]
[1, 2, 3, 4, 5, 6, 7, Proc]
[NilClass]
[1, NilClass]
[1, 2, NilClass]
[1, 2, 3, NilClass]
[1, 2, 3, 4, NilClass]
[1, 2, 3, 4, 5, 6, 7, NilClass]
[1, [2], NilClass]
[1, 2, [3], NilClass]
[1, 2, 3, [4], NilClass]
[1, 2, 3, 4, NilClass]
[1, 2, 3, 4, 5, 6, [7], NilClass]
");
}