@@ -509,15 +509,15 @@ def test_autoload?
509509 def test_class_variable_defined?
510510 mod = Module . new
511511
512- with_interned :@@module_test_class_variable_defined do |name |
512+ with_interned :@@module_test_class_variable_defined do |cvar |
513513 assert_send_type "(interned) -> bool" ,
514- mod , :class_variable_defined? , name
514+ mod , :class_variable_defined? , cvar
515515 end
516516
517517 mod . class_variable_set :@@module_test_class_variable_defined , 12
518- with_interned :@@module_test_class_variable_defined do |name |
518+ with_interned :@@module_test_class_variable_defined do |cvar |
519519 assert_send_type "(interned) -> bool" ,
520- mod , :class_variable_defined? , name
520+ mod , :class_variable_defined? , cvar
521521 end
522522 end
523523
@@ -527,19 +527,19 @@ def test_class_variable_get
527527 # If it's not set it raises an exception
528528 mod . class_variable_set :@@module_test_class_variable_get , 12
529529
530- with_interned :@@module_test_class_variable_get do |name |
530+ with_interned :@@module_test_class_variable_get do |cvar |
531531 assert_send_type "(interned) -> untyped" ,
532- mod , :class_variable_get , name
532+ mod , :class_variable_get , cvar
533533 end
534534 end
535535
536536 def test_class_variable_set
537537 mod = Module . new
538538
539- with_interned :@@module_test_class_variable_set do |name |
539+ with_interned :@@module_test_class_variable_set do |cvar |
540540 with_untyped do |value |
541541 assert_send_type "[T] (interned, T) -> T" ,
542- mod , :class_variable_set , name , value
542+ mod , :class_variable_set , cvar , value
543543 end
544544 end
545545 end
@@ -678,16 +678,41 @@ def test_initialize_clone
678678 def test_instance_method
679679 mod = Module . new do
680680 def foo = 3
681+ private def bar = 4
681682 end
682683
683684 with_interned :foo do |name |
684685 assert_send_type '(interned) -> UnboundMethod' ,
685686 mod , :instance_method , name
686687 end
688+
689+ with_interned :bar do |name |
690+ assert_send_type '(interned) -> UnboundMethod' ,
691+ mod , :instance_method , name
692+ end
687693 end
688694
689695 def test_instance_methods
690- omit 'todo'
696+ mod = Module . new do
697+ include Module . new {
698+ public def foo1 = 1
699+ private def foo2 = 1
700+ protected def foo3 = 1
701+ }
702+ public def bar1 = 1
703+ private def bar2 = 1
704+ protected def bar3 = 1
705+ end
706+
707+ assert_send_type '() -> Array[Symbol]' ,
708+ Module . new , :instance_methods
709+ assert_send_type '() -> Array[Symbol]' ,
710+ mod , :instance_methods
711+
712+ with_boolish do |include_super |
713+ assert_send_type '(boolish) -> Array[Symbol]' ,
714+ mod , :instance_methods , include_super
715+ end
691716 end
692717
693718 def test_method_defined?
@@ -737,7 +762,23 @@ def test_private_constant
737762 end
738763
739764 def test_private_instance_methods
740- omit 'todo'
765+ mod = Module . new do
766+ include Module . new {
767+ private def bar = 4
768+ }
769+
770+ private def foo = 3
771+ end
772+
773+ assert_send_type '() -> Array[Symbol]' ,
774+ Module . new , :private_instance_methods
775+ assert_send_type '() -> Array[Symbol]' ,
776+ mod , :private_instance_methods
777+
778+ with_boolish do |include_super |
779+ assert_send_type '(boolish) -> Array[Symbol]' ,
780+ mod , :private_instance_methods , include_super
781+ end
741782 end
742783
743784 def test_private_method_defined?
@@ -785,7 +826,23 @@ def test_private_method_defined?
785826 end
786827
787828 def test_protected_instance_methods
788- omit 'todo'
829+ mod = Module . new do
830+ include Module . new {
831+ protected def bar = 4
832+ }
833+
834+ protected def foo = 3
835+ end
836+
837+ assert_send_type '() -> Array[Symbol]' ,
838+ Module . new , :protected_instance_methods
839+ assert_send_type '() -> Array[Symbol]' ,
840+ mod , :protected_instance_methods
841+
842+ with_boolish do |include_super |
843+ assert_send_type '(boolish) -> Array[Symbol]' ,
844+ mod , :protected_instance_methods , include_super
845+ end
789846 end
790847
791848 def test_protected_method_defined?
@@ -837,11 +894,34 @@ def test_public_constant
837894 end
838895
839896 def test_public_instance_method
840- omit 'todo'
897+ mod = Module . new do
898+ def foo = 3
899+ end
900+
901+ with_interned :foo do |name |
902+ assert_send_type '(interned) -> UnboundMethod' ,
903+ mod , :instance_method , name
904+ end
841905 end
842906
843907 def test_public_instance_methods
844- omit 'todo'
908+ mod = Module . new do
909+ include Module . new {
910+ def bar = 4
911+ }
912+
913+ def foo = 3
914+ end
915+
916+ assert_send_type '() -> Array[Symbol]' ,
917+ Module . new , :public_instance_methods
918+ assert_send_type '() -> Array[Symbol]' ,
919+ mod , :public_instance_methods
920+
921+ with_boolish do |include_super |
922+ assert_send_type '(boolish) -> Array[Symbol]' ,
923+ mod , :public_instance_methods , include_super
924+ end
845925 end
846926
847927 def test_public_method_defined?
@@ -889,23 +969,61 @@ def test_public_method_defined?
889969 end
890970
891971 def test_remove_class_variable
892- omit 'todo'
972+ with_interned :@@module_test_remove_class_variable do |cvar |
973+ mod = Module . new do
974+ class_variable_set ( :@@module_test_remove_class_variable , 123 )
975+ end
976+
977+ assert_send_type '(interned) -> untyped' ,
978+ mod , :remove_class_variable , cvar
979+ end
893980 end
894981
895982 def test_remove_method
896- omit 'todo'
983+ assert_send_type '() -> Module' ,
984+ Module . new , :remove_method
985+
986+ with_interned :foo do |foo |
987+ assert_send_type '(interned) -> Module' ,
988+ Module . new { def foo = 3 } , :remove_method , foo
989+ with_interned :bar do |bar |
990+ assert_send_type '(*interned) -> Module' ,
991+ Module . new { def foo = 3 ; def bar = 4 } , :remove_method , foo , bar
992+ end
993+ end
897994 end
898995
899- def test_singleton_class
900- omit 'todo'
996+ def test_singleton_class?
997+ assert_send_type '() -> bool' ,
998+ Module , :singleton_class?
999+ assert_send_type '() -> bool' ,
1000+ Module . singleton_class , :singleton_class?
9011001 end
9021002
9031003 def test_undef_method
904- omit 'todo'
1004+ assert_send_type '() -> Module' ,
1005+ Module . new , :undef_method
1006+
1007+ with_interned :foo do |foo |
1008+ assert_send_type '(interned) -> Module' ,
1009+ Module . new { def foo = 3 } , :undef_method , foo
1010+ with_interned :bar do |bar |
1011+ assert_send_type '(*interned) -> Module' ,
1012+ Module . new { def foo = 3 ; def bar = 4 } , :undef_method , foo , bar
1013+ end
1014+ end
9051015 end
9061016
9071017 def test_undefined_instance_methods
908- omit 'todo'
1018+ mod = Module . new do
1019+ def foo = 4
1020+ undef foo
1021+ end
1022+
1023+ assert_send_type '() -> Array[Symbol]' ,
1024+ Module . new , :undefined_instance_methods
1025+ assert_send_type '() -> Array[Symbol]' ,
1026+ mod , :undefined_instance_methods
9091027 end
9101028
9111029 def test_append_features
0 commit comments