302
316
assert_equal '1', %q( class C; def m() 7 end; private :m end
303
317
begin C.new.send(:m); rescue NoMethodError; 1 end )
304
318
assert_equal '1', %q( class C; def m() 1 end; private :m end
322
assert_equal '[[:ok1, :foo], [:ok2, :foo, :bar]]',
329
$ary << [yield, a, b]
334
C.new[:foo, &lambda{:ok1}]
335
C.new[:foo, &lambda{:ok2}] = :bar
340
assert_equal '[:ok1, [:ok2, 11]]', %q{
355
# splat and block arguments
356
assert_equal %q{[[[:x, :y, :z], NilClass], [[1, :x, :y, :z], NilClass], [[1, 2, :x, :y, :z], NilClass], [[:obj], NilClass], [[1, :obj], NilClass], [[1, 2, :obj], NilClass], [[], Proc], [[1], Proc], [[1, 2], Proc], [[], Proc], [[1], Proc], [[1, 2], Proc], [[:x, :y, :z], Proc], [[1, :x, :y, :z], Proc], [[1, 2, :x, :y, :z], Proc]]}, %q{
358
$result << [args, b.class]
384
assert_equal %q{[1, 2, :o1, :o2, [], 3, 4, NilClass, nil, nil]}, %q{
385
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
386
x, y = :x, :y if $foo
387
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
391
assert_equal %q{[1, 2, 3, :o2, [], 4, 5, NilClass, nil, nil]}, %q{
392
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
393
x, y = :x, :y if $foo
394
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
398
assert_equal %q{[1, 2, 3, 4, [], 5, 6, NilClass, nil, nil]}, %q{
399
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
400
x, y = :x, :y if $foo
401
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
403
; m(1, 2, 3, 4, 5, 6)}
405
assert_equal %q{[1, 2, 3, 4, [5], 6, 7, NilClass, nil, nil]}, %q{
406
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
407
x, y = :x, :y if $foo
408
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
410
; m(1, 2, 3, 4, 5, 6, 7)}
412
assert_equal %q{[1, 2, 3, 4, [5, 6], 7, 8, NilClass, nil, nil]}, %q{
413
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
414
x, y = :x, :y if $foo
415
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
417
; m(1, 2, 3, 4, 5, 6, 7, 8)}
419
assert_equal %q{[1, 2, 3, 4, [5, 6, 7], 8, 9, NilClass, nil, nil]}, %q{
420
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
421
x, y = :x, :y if $foo
422
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
424
; m(1, 2, 3, 4, 5, 6, 7, 8, 9)}
426
assert_equal %q{[1, 2, 3, 4, [5, 6, 7, 8], 9, 10, NilClass, nil, nil]}, %q{
427
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
428
x, y = :x, :y if $foo
429
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
431
; m(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)}
433
assert_equal %q{[1, 2, 3, 4, [5, 6, 7, 8, 9], 10, 11, NilClass, nil, nil]}, %q{
434
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
435
x, y = :x, :y if $foo
436
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
438
; m(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)}
440
assert_equal %q{[1, 2, :o1, :o2, [], 3, 4, Proc, nil, nil]}, %q{
441
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
442
x, y = :x, :y if $foo
443
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
447
assert_equal %q{[1, 2, 3, :o2, [], 4, 5, Proc, nil, nil]}, %q{
448
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
449
x, y = :x, :y if $foo
450
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
452
; m(1, 2, 3, 4, 5){}}
454
assert_equal %q{[1, 2, 3, 4, [], 5, 6, Proc, nil, nil]}, %q{
455
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
456
x, y = :x, :y if $foo
457
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
459
; m(1, 2, 3, 4, 5, 6){}}
461
assert_equal %q{[1, 2, 3, 4, [5], 6, 7, Proc, nil, nil]}, %q{
462
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
463
x, y = :x, :y if $foo
464
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
466
; m(1, 2, 3, 4, 5, 6, 7){}}
468
assert_equal %q{[1, 2, 3, 4, [5, 6], 7, 8, Proc, nil, nil]}, %q{
469
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
470
x, y = :x, :y if $foo
471
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
473
; m(1, 2, 3, 4, 5, 6, 7, 8){}}
475
assert_equal %q{[1, 2, 3, 4, [5, 6, 7], 8, 9, Proc, nil, nil]}, %q{
476
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
477
x, y = :x, :y if $foo
478
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
480
; m(1, 2, 3, 4, 5, 6, 7, 8, 9){}}
482
assert_equal %q{[1, 2, 3, 4, [5, 6, 7, 8], 9, 10, Proc, nil, nil]}, %q{
483
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
484
x, y = :x, :y if $foo
485
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
487
; m(1, 2, 3, 4, 5, 6, 7, 8, 9, 10){}}
489
assert_equal %q{[1, 2, 3, 4, [5, 6, 7, 8, 9], 10, 11, Proc, nil, nil]}, %q{
490
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
491
x, y = :x, :y if $foo
492
[m1, m2, o1, o2, r, p1, p2, b.class, x, y]
494
; m(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11){}}
496
assert_equal %q{[1, 2, :o1, :o2, [], 3, 4, nil, nil]}, %q{
497
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2)
498
x, y = :x, :y if $foo
499
[m1, m2, o1, o2, r, p1, p2, x, y]
503
assert_equal %q{[1, 2, 3, :o2, [], 4, 5, nil, nil]}, %q{
504
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2)
505
x, y = :x, :y if $foo
506
[m1, m2, o1, o2, r, p1, p2, x, y]
510
assert_equal %q{[1, 2, 3, 4, [], 5, 6, nil, nil]}, %q{
511
def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2)
512
x, y = :x, :y if $foo
513
[m1, m2, o1, o2, r, p1, p2, x, y]
515
; m(1, 2, 3, 4, 5, 6)}
522
# below programs are generated by this program:
525
class C0; def m *args; [:C0_m, args]; end; end
526
class C1 < C0; <TEST>; super; end; end
595
def m a, o=:o, *r, &b
604
C1.new.m(1, 2, 3, 4){}
607
"def m(m1, m2, o1=:o1, o2=:o2, p1, p2)" =>
611
C1.new.m(1,2,3,4,5,6)
614
"def m(m1, m2, *r, p1, p2)" =>
618
C1.new.m(1,2,3,4,5,6)
619
C1.new.m(1,2,3,4,5,6,7)
620
C1.new.m(1,2,3,4,5,6,7,8)
623
"def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2)" =>
627
C1.new.m(1,2,3,4,5,6)
628
C1.new.m(1,2,3,4,5,6,7)
629
C1.new.m(1,2,3,4,5,6,7,8)
630
C1.new.m(1,2,3,4,5,6,7,8,9)
637
tests.each{|setup, methods| setup = setup.dup; setup.strip!
638
setup = BASE.gsub(/<TEST>/){setup}
639
methods.split(/\n/).each{|m| m = m.dup; m.strip!
641
expr = "#{setup}; #{m}"
643
puts "assert_equal %q{#{result.inspect}}, %q{\n#{expr}}"
650
assert_equal %q{[:C0_m, [1, 2, :o1, :o2, 3, 4]]}, %q{
651
class C0; def m *args; [:C0_m, args]; end; end
652
class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, p1, p2); super; end; end
655
assert_equal %q{[:C0_m, [1, 2, 3, :o2, 4, 5]]}, %q{
656
class C0; def m *args; [:C0_m, args]; end; end
657
class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, p1, p2); super; end; end
658
; C1.new.m(1,2,3,4,5)}
660
assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6]]}, %q{
661
class C0; def m *args; [:C0_m, args]; end; end
662
class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, p1, p2); super; end; end
663
; C1.new.m(1,2,3,4,5,6)}
665
assert_equal %q{[:C0_m, [1, :o]]}, %q{
666
class C0; def m *args; [:C0_m, args]; end; end
667
class C1 < C0; def m a, o=:o, *r; super; end; end
670
assert_equal %q{[:C0_m, [1, 2]]}, %q{
671
class C0; def m *args; [:C0_m, args]; end; end
672
class C1 < C0; def m a, o=:o, *r; super; end; end
675
assert_equal %q{[:C0_m, [1, 2, 3]]}, %q{
676
class C0; def m *args; [:C0_m, args]; end; end
677
class C1 < C0; def m a, o=:o, *r; super; end; end
680
assert_equal %q{[:C0_m, [1, 2, 3, 4]]}, %q{
681
class C0; def m *args; [:C0_m, args]; end; end
682
class C1 < C0; def m a, o=:o, *r; super; end; end
683
; C1.new.m 1, 2, 3, 4}
685
assert_equal %q{[:C0_m, [:a]]}, %q{
686
class C0; def m *args; [:C0_m, args]; end; end
687
class C1 < C0; def m a
688
a = :a; super; end; end
691
assert_equal %q{[:C0_m, [1, 2, 3, 4]]}, %q{
692
class C0; def m *args; [:C0_m, args]; end; end
693
class C1 < C0; def m(m1, m2, *r, p1, p2); super; end; end
696
assert_equal %q{[:C0_m, [1, 2, 3, 4, 5]]}, %q{
697
class C0; def m *args; [:C0_m, args]; end; end
698
class C1 < C0; def m(m1, m2, *r, p1, p2); super; end; end
699
; C1.new.m(1,2,3,4,5)}
701
assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6]]}, %q{
702
class C0; def m *args; [:C0_m, args]; end; end
703
class C1 < C0; def m(m1, m2, *r, p1, p2); super; end; end
704
; C1.new.m(1,2,3,4,5,6)}
706
assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7]]}, %q{
707
class C0; def m *args; [:C0_m, args]; end; end
708
class C1 < C0; def m(m1, m2, *r, p1, p2); super; end; end
709
; C1.new.m(1,2,3,4,5,6,7)}
711
assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7, 8]]}, %q{
712
class C0; def m *args; [:C0_m, args]; end; end
713
class C1 < C0; def m(m1, m2, *r, p1, p2); super; end; end
714
; C1.new.m(1,2,3,4,5,6,7,8)}
716
assert_equal %q{[:C0_m, [1, :o]]}, %q{
717
class C0; def m *args; [:C0_m, args]; end; end
718
class C1 < C0; def m a, o=:o, *r, &b; super; end; end
721
assert_equal %q{[:C0_m, [1, 2]]}, %q{
722
class C0; def m *args; [:C0_m, args]; end; end
723
class C1 < C0; def m a, o=:o, *r, &b; super; end; end
726
assert_equal %q{[:C0_m, [1, 2, 3]]}, %q{
727
class C0; def m *args; [:C0_m, args]; end; end
728
class C1 < C0; def m a, o=:o, *r, &b; super; end; end
731
assert_equal %q{[:C0_m, [1, 2, 3, 4]]}, %q{
732
class C0; def m *args; [:C0_m, args]; end; end
733
class C1 < C0; def m a, o=:o, *r, &b; super; end; end
734
; C1.new.m 1, 2, 3, 4}
736
assert_equal %q{[:C0_m, [1, :o]]}, %q{
737
class C0; def m *args; [:C0_m, args]; end; end
738
class C1 < C0; def m a, o=:o, *r, &b; super; end; end
741
assert_equal %q{[:C0_m, [1, 2]]}, %q{
742
class C0; def m *args; [:C0_m, args]; end; end
743
class C1 < C0; def m a, o=:o, *r, &b; super; end; end
746
assert_equal %q{[:C0_m, [1, 2, 3]]}, %q{
747
class C0; def m *args; [:C0_m, args]; end; end
748
class C1 < C0; def m a, o=:o, *r, &b; super; end; end
749
; C1.new.m(1, 2, 3){}}
751
assert_equal %q{[:C0_m, [1, 2, 3, 4]]}, %q{
752
class C0; def m *args; [:C0_m, args]; end; end
753
class C1 < C0; def m a, o=:o, *r, &b; super; end; end
754
; C1.new.m(1, 2, 3, 4){}}
756
assert_equal %q{[:C0_m, [1, :x]]}, %q{
757
class C0; def m *args; [:C0_m, args]; end; end
758
class C1 < C0; def m a, o=:o
759
o = :x; super; end; end
762
assert_equal %q{[:C0_m, [1, :x]]}, %q{
763
class C0; def m *args; [:C0_m, args]; end; end
764
class C1 < C0; def m a, o=:o
765
o = :x; super; end; end
768
assert_equal %q{[:C0_m, [:a, :o]]}, %q{
769
class C0; def m *args; [:C0_m, args]; end; end
770
class C1 < C0; def m a, o=:o
771
a = :a; super; end; end
774
assert_equal %q{[:C0_m, [:a, 2]]}, %q{
775
class C0; def m *args; [:C0_m, args]; end; end
776
class C1 < C0; def m a, o=:o
777
a = :a; super; end; end
780
assert_equal %q{[:C0_m, [1]]}, %q{
781
class C0; def m *args; [:C0_m, args]; end; end
782
class C1 < C0; def m a; super; end; end
785
assert_equal %q{[:C0_m, [1, :x, :y]]}, %q{
786
class C0; def m *args; [:C0_m, args]; end; end
787
class C1 < C0; def m a, *r
788
r = [:x, :y]; super; end; end
791
assert_equal %q{[:C0_m, [1, :x, :y]]}, %q{
792
class C0; def m *args; [:C0_m, args]; end; end
793
class C1 < C0; def m a, *r
794
r = [:x, :y]; super; end; end
797
assert_equal %q{[:C0_m, [1, :x, :y]]}, %q{
798
class C0; def m *args; [:C0_m, args]; end; end
799
class C1 < C0; def m a, *r
800
r = [:x, :y]; super; end; end
803
assert_equal %q{[:C0_m, [1, 2, :o1, :o2, 3, 4]]}, %q{
804
class C0; def m *args; [:C0_m, args]; end; end
805
class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end
808
assert_equal %q{[:C0_m, [1, 2, 3, :o2, 4, 5]]}, %q{
809
class C0; def m *args; [:C0_m, args]; end; end
810
class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end
811
; C1.new.m(1,2,3,4,5)}
813
assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6]]}, %q{
814
class C0; def m *args; [:C0_m, args]; end; end
815
class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end
816
; C1.new.m(1,2,3,4,5,6)}
818
assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7]]}, %q{
819
class C0; def m *args; [:C0_m, args]; end; end
820
class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end
821
; C1.new.m(1,2,3,4,5,6,7)}
823
assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7, 8]]}, %q{
824
class C0; def m *args; [:C0_m, args]; end; end
825
class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end
826
; C1.new.m(1,2,3,4,5,6,7,8)}
828
assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7, 8, 9]]}, %q{
829
class C0; def m *args; [:C0_m, args]; end; end
830
class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end
831
; C1.new.m(1,2,3,4,5,6,7,8,9)}
833
assert_equal %q{[:C0_m, [1]]}, %q{
834
class C0; def m *args; [:C0_m, args]; end; end
835
class C1 < C0; def m a, *r; super; end; end
838
assert_equal %q{[:C0_m, [1, 2]]}, %q{
839
class C0; def m *args; [:C0_m, args]; end; end
840
class C1 < C0; def m a, *r; super; end; end
843
assert_equal %q{[:C0_m, [1, 2, 3]]}, %q{
844
class C0; def m *args; [:C0_m, args]; end; end
845
class C1 < C0; def m a, *r; super; end; end
848
assert_equal %q{[:C0_m, []]}, %q{
849
class C0; def m *args; [:C0_m, args]; end; end
850
class C1 < C0; def m; super; end; end
853
assert_equal %q{[:C0_m, [1, :o]]}, %q{
854
class C0; def m *args; [:C0_m, args]; end; end
855
class C1 < C0; def m a, o=:o; super; end; end
858
assert_equal %q{[:C0_m, [1, 2]]}, %q{
859
class C0; def m *args; [:C0_m, args]; end; end
860
class C1 < C0; def m a, o=:o; super; end; end
863
assert_equal %q{[:ok, :ok, :ok, :ok, :ok, :ok, :ng, :ng]}, %q{
870
alias send! send unless defined? send!
904
test{o1.method(:m).call}
905
test{o2.method(:mm).call}
909
assert_equal 'ok', %q{
920
assert_equal 'ok', %q{
930
}, '[ruby-core:11998]'
932
assert_equal 'ok', %q{
942
}, '[ruby-core:11998]'
944
assert_equal 'ok', %q{
958
}, '[ruby-core:11998]'