typeprof 0.7.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +8 -5
  3. data/lib/typeprof/analyzer.rb +211 -98
  4. data/lib/typeprof/arguments.rb +2 -0
  5. data/lib/typeprof/block.rb +40 -2
  6. data/lib/typeprof/builtin.rb +301 -99
  7. data/lib/typeprof/cli.rb +2 -0
  8. data/lib/typeprof/config.rb +14 -2
  9. data/lib/typeprof/container-type.rb +5 -4
  10. data/lib/typeprof/export.rb +116 -65
  11. data/lib/typeprof/import.rb +68 -41
  12. data/lib/typeprof/iseq.rb +46 -11
  13. data/lib/typeprof/method.rb +47 -23
  14. data/lib/typeprof/type.rb +96 -18
  15. data/lib/typeprof/version.rb +1 -1
  16. data/smoke/alias.rb +5 -4
  17. data/smoke/alias2.rb +6 -4
  18. data/smoke/any1.rb +2 -1
  19. data/smoke/any2.rb +3 -2
  20. data/smoke/arguments.rb +3 -2
  21. data/smoke/arguments2.rb +11 -10
  22. data/smoke/array-each.rb +2 -1
  23. data/smoke/array-each2.rb +2 -1
  24. data/smoke/array-each3.rb +2 -1
  25. data/smoke/array-ltlt.rb +2 -1
  26. data/smoke/array-ltlt2.rb +2 -1
  27. data/smoke/array-map.rb +2 -1
  28. data/smoke/array-map2.rb +2 -1
  29. data/smoke/array-map3.rb +4 -3
  30. data/smoke/array-mul.rb +3 -2
  31. data/smoke/array-plus1.rb +2 -1
  32. data/smoke/array-plus2.rb +3 -2
  33. data/smoke/array-pop.rb +2 -1
  34. data/smoke/array-range-aref.rb +12 -11
  35. data/smoke/array-replace.rb +2 -1
  36. data/smoke/array-s-aref.rb +2 -1
  37. data/smoke/array1.rb +6 -5
  38. data/smoke/array10.rb +2 -1
  39. data/smoke/array11.rb +2 -1
  40. data/smoke/array12.rb +4 -3
  41. data/smoke/array13.rb +5 -4
  42. data/smoke/array14.rb +2 -1
  43. data/smoke/array15.rb +16 -0
  44. data/smoke/array2.rb +4 -3
  45. data/smoke/array3.rb +5 -4
  46. data/smoke/array4.rb +2 -1
  47. data/smoke/array5.rb +2 -1
  48. data/smoke/array6.rb +4 -2
  49. data/smoke/array7.rb +2 -1
  50. data/smoke/array8.rb +1 -1
  51. data/smoke/array9.rb +2 -1
  52. data/smoke/attr-module.rb +27 -0
  53. data/smoke/attr-vis.rb +43 -0
  54. data/smoke/attr-vis.rbs +4 -0
  55. data/smoke/attr.rb +5 -5
  56. data/smoke/autoload.rb +2 -1
  57. data/smoke/backtrace.rb +4 -3
  58. data/smoke/block-ambiguous.rb +9 -8
  59. data/smoke/block-args1-rest.rb +13 -11
  60. data/smoke/block-args1.rb +11 -10
  61. data/smoke/block-args2-rest.rb +13 -11
  62. data/smoke/block-args2.rb +11 -10
  63. data/smoke/block-args3-rest.rb +15 -13
  64. data/smoke/block-args3.rb +13 -12
  65. data/smoke/block-blockarg.rb +5 -4
  66. data/smoke/block-kwarg.rb +11 -10
  67. data/smoke/block1.rb +2 -1
  68. data/smoke/block10.rb +2 -1
  69. data/smoke/block11.rb +6 -5
  70. data/smoke/block12.rb +3 -2
  71. data/smoke/block14.rb +3 -2
  72. data/smoke/block2.rb +2 -1
  73. data/smoke/block3.rb +3 -3
  74. data/smoke/block4.rb +3 -2
  75. data/smoke/block5.rb +4 -2
  76. data/smoke/block6.rb +3 -2
  77. data/smoke/block7.rb +2 -1
  78. data/smoke/block8.rb +4 -3
  79. data/smoke/block9.rb +2 -1
  80. data/smoke/block_given.rb +37 -0
  81. data/smoke/blown.rb +2 -1
  82. data/smoke/break1.rb +3 -2
  83. data/smoke/break2.rb +2 -1
  84. data/smoke/break3.rb +13 -0
  85. data/smoke/case.rb +2 -1
  86. data/smoke/case2.rb +2 -1
  87. data/smoke/case3.rb +17 -0
  88. data/smoke/class-hierarchy.rb +5 -5
  89. data/smoke/class-hierarchy2.rb +3 -3
  90. data/smoke/class-new.rb +15 -0
  91. data/smoke/class_instance_var.rb +1 -1
  92. data/smoke/class_method.rb +2 -2
  93. data/smoke/class_method2.rb +2 -2
  94. data/smoke/class_method3.rb +4 -2
  95. data/smoke/constant1.rb +6 -6
  96. data/smoke/constant2.rb +6 -4
  97. data/smoke/constant3.rb +2 -1
  98. data/smoke/constant4.rb +2 -1
  99. data/smoke/context-sensitive1.rb +2 -1
  100. data/smoke/cvar.rb +7 -5
  101. data/smoke/cvar2.rb +2 -2
  102. data/smoke/define_method.rb +2 -2
  103. data/smoke/define_method2.rb +2 -2
  104. data/smoke/define_method3.rb +14 -0
  105. data/smoke/define_method3.rbs +3 -0
  106. data/smoke/define_method4.rb +15 -0
  107. data/smoke/define_method4.rbs +3 -0
  108. data/smoke/define_method5.rb +12 -0
  109. data/smoke/define_method6.rb +19 -0
  110. data/smoke/demo.rb +7 -6
  111. data/smoke/demo1.rb +2 -1
  112. data/smoke/demo10.rb +3 -2
  113. data/smoke/demo11.rb +2 -1
  114. data/smoke/demo2.rb +2 -1
  115. data/smoke/demo3.rb +2 -1
  116. data/smoke/demo4.rb +3 -3
  117. data/smoke/demo5.rb +1 -1
  118. data/smoke/demo6.rb +4 -3
  119. data/smoke/demo7.rb +2 -1
  120. data/smoke/demo8.rb +3 -2
  121. data/smoke/demo9.rb +4 -2
  122. data/smoke/dummy-execution1.rb +3 -2
  123. data/smoke/dummy-execution2.rb +2 -2
  124. data/smoke/dummy_element.rb +14 -0
  125. data/smoke/ensure1.rb +3 -2
  126. data/smoke/enum_for.rb +15 -0
  127. data/smoke/enum_for2.rb +17 -0
  128. data/smoke/enumerator.rb +3 -2
  129. data/smoke/expandarray1.rb +2 -1
  130. data/smoke/expandarray2.rb +2 -1
  131. data/smoke/fib.rb +2 -2
  132. data/smoke/flip-flop.rb +28 -0
  133. data/smoke/flow1.rb +2 -1
  134. data/smoke/flow10.rb +17 -0
  135. data/smoke/flow2.rb +2 -1
  136. data/smoke/flow3.rb +2 -1
  137. data/smoke/flow5.rb +2 -1
  138. data/smoke/flow6.rb +2 -1
  139. data/smoke/flow7.rb +2 -1
  140. data/smoke/flow8.rb +2 -1
  141. data/smoke/flow9.rb +12 -0
  142. data/smoke/freeze.rb +2 -1
  143. data/smoke/function.rb +3 -2
  144. data/smoke/gvar.rb +3 -2
  145. data/smoke/gvar2.rb +4 -3
  146. data/smoke/hash-bot.rb +12 -0
  147. data/smoke/hash-fetch.rb +4 -3
  148. data/smoke/hash-merge-bang.rb +2 -1
  149. data/smoke/hash1.rb +3 -2
  150. data/smoke/hash2.rb +2 -1
  151. data/smoke/hash3.rb +2 -1
  152. data/smoke/hash4.rb +2 -1
  153. data/smoke/hash5.rb +1 -1
  154. data/smoke/inheritance.rb +4 -4
  155. data/smoke/inheritance2.rb +2 -2
  156. data/smoke/initialize.rb +7 -5
  157. data/smoke/instance_eval.rb +2 -2
  158. data/smoke/instance_eval2.rb +10 -0
  159. data/smoke/instance_eval3.rb +25 -0
  160. data/smoke/int_times.rb +2 -1
  161. data/smoke/integer.rb +2 -1
  162. data/smoke/ivar.rb +6 -4
  163. data/smoke/ivar2.rb +4 -4
  164. data/smoke/ivar3.rb +4 -3
  165. data/smoke/ivar4.rb +21 -0
  166. data/smoke/kernel-class.rb +2 -1
  167. data/smoke/keyword1.rb +2 -1
  168. data/smoke/keyword2.rb +2 -1
  169. data/smoke/keyword3.rb +2 -1
  170. data/smoke/keyword4.rb +2 -1
  171. data/smoke/keyword5.rb +2 -1
  172. data/smoke/kwrest.rb +3 -2
  173. data/smoke/kwsplat1.rb +5 -4
  174. data/smoke/kwsplat2.rb +2 -1
  175. data/smoke/lit-complex.rb +10 -0
  176. data/smoke/lit-encoding.rb +10 -0
  177. data/smoke/manual-rbs.rb +6 -4
  178. data/smoke/manual-rbs2.rb +2 -1
  179. data/smoke/manual-rbs3.rb +3 -2
  180. data/smoke/masgn1.rb +2 -1
  181. data/smoke/masgn2.rb +3 -2
  182. data/smoke/masgn3.rb +2 -1
  183. data/smoke/method_in_branch.rb +4 -3
  184. data/smoke/method_missing.rb +5 -4
  185. data/smoke/module1.rb +2 -2
  186. data/smoke/module2.rb +1 -1
  187. data/smoke/module3.rb +3 -3
  188. data/smoke/module4.rb +3 -2
  189. data/smoke/module5.rb +17 -0
  190. data/smoke/module6.rb +40 -0
  191. data/smoke/module_function1.rb +4 -3
  192. data/smoke/module_function2.rb +4 -3
  193. data/smoke/multiple-include.rb +2 -1
  194. data/smoke/multiple-superclass.rb +1 -1
  195. data/smoke/next1.rb +3 -2
  196. data/smoke/next2.rb +2 -1
  197. data/smoke/object-send1.rb +4 -3
  198. data/smoke/object-send2.rb +10 -0
  199. data/smoke/object-send3.rb +18 -0
  200. data/smoke/once.rb +2 -1
  201. data/smoke/optional1.rb +2 -1
  202. data/smoke/optional2.rb +2 -1
  203. data/smoke/optional3.rb +2 -1
  204. data/smoke/parameterizedd-self.rb +4 -2
  205. data/smoke/parameterizedd-self2.rb +1 -1
  206. data/smoke/pathname1.rb +2 -1
  207. data/smoke/pathname2.rb +2 -1
  208. data/smoke/pattern-match1.rb +2 -1
  209. data/smoke/pattern-match2.rb +2 -1
  210. data/smoke/prepend1.rb +33 -0
  211. data/smoke/prepend2.rb +10 -0
  212. data/smoke/prepend2.rbs +9 -0
  213. data/smoke/primitive_method.rb +19 -0
  214. data/smoke/printf.rb +2 -2
  215. data/smoke/proc.rb +3 -2
  216. data/smoke/proc2.rb +2 -1
  217. data/smoke/proc3.rb +2 -1
  218. data/smoke/proc4.rb +2 -1
  219. data/smoke/proc5.rb +19 -0
  220. data/smoke/public.rb +38 -0
  221. data/smoke/range.rb +2 -1
  222. data/smoke/rbs-alias.rb +2 -1
  223. data/smoke/rbs-attr.rb +6 -5
  224. data/smoke/rbs-attr2.rb +1 -1
  225. data/smoke/rbs-extend.rb +2 -1
  226. data/smoke/rbs-interface.rb +5 -4
  227. data/smoke/rbs-module.rb +26 -0
  228. data/smoke/rbs-module.rbs +4 -0
  229. data/smoke/rbs-opt-and-rest.rb +10 -0
  230. data/smoke/rbs-opt-and-rest.rbs +3 -0
  231. data/smoke/rbs-proc1.rb +2 -1
  232. data/smoke/rbs-proc2.rb +3 -2
  233. data/smoke/rbs-proc3.rb +2 -1
  234. data/smoke/rbs-record.rb +3 -2
  235. data/smoke/rbs-tyvar.rb +3 -2
  236. data/smoke/rbs-tyvar2.rb +3 -2
  237. data/smoke/rbs-tyvar3.rb +3 -2
  238. data/smoke/rbs-tyvar4.rb +4 -3
  239. data/smoke/rbs-tyvar5.rb +2 -1
  240. data/smoke/rbs-tyvar6.rb +4 -3
  241. data/smoke/rbs-tyvar7.rb +2 -1
  242. data/smoke/rbs-vars.rb +7 -6
  243. data/smoke/redo1.rb +3 -2
  244. data/smoke/redo2.rb +3 -2
  245. data/smoke/req-keyword.rb +2 -1
  246. data/smoke/rescue1.rb +3 -2
  247. data/smoke/rescue2.rb +3 -2
  248. data/smoke/rescue3.rb +20 -0
  249. data/smoke/rescue4.rb +17 -0
  250. data/smoke/respond_to.rb +2 -1
  251. data/smoke/rest-farg.rb +2 -1
  252. data/smoke/rest1.rb +3 -2
  253. data/smoke/rest2.rb +2 -1
  254. data/smoke/rest3.rb +7 -6
  255. data/smoke/rest4.rb +3 -2
  256. data/smoke/rest5.rb +2 -1
  257. data/smoke/rest6.rb +2 -1
  258. data/smoke/retry1.rb +3 -2
  259. data/smoke/return.rb +2 -1
  260. data/smoke/simple.rb +12 -0
  261. data/smoke/singleton_method.rb +1 -1
  262. data/smoke/step.rb +4 -3
  263. data/smoke/string-split.rb +2 -1
  264. data/smoke/struct-keyword_init.rb +10 -0
  265. data/smoke/struct.rb +1 -1
  266. data/smoke/struct2.rb +5 -4
  267. data/smoke/struct3.rb +2 -2
  268. data/smoke/struct4.rb +7 -0
  269. data/smoke/struct5.rb +16 -0
  270. data/smoke/struct6.rb +15 -0
  271. data/smoke/struct7.rb +17 -0
  272. data/smoke/stub-keyword.rb +10 -0
  273. data/smoke/super1.rb +5 -4
  274. data/smoke/super2.rb +1 -1
  275. data/smoke/super3.rb +4 -3
  276. data/smoke/super4.rb +7 -5
  277. data/smoke/super5.rb +6 -4
  278. data/smoke/svar1.rb +2 -1
  279. data/smoke/symbol-proc-attr.rb +22 -0
  280. data/smoke/symbol-proc-attr2.rb +15 -0
  281. data/smoke/symbol-proc-bot.rb +13 -0
  282. data/smoke/symbol-proc.rb +4 -3
  283. data/smoke/tap1.rb +3 -2
  284. data/smoke/toplevel.rb +2 -1
  285. data/smoke/two-map.rb +3 -2
  286. data/smoke/type_var.rb +4 -3
  287. data/smoke/typed_method.rb +2 -1
  288. data/smoke/uninitialize-var.rb +2 -1
  289. data/smoke/union-recv.rb +2 -2
  290. data/smoke/user-demo.rb +3 -3
  291. data/smoke/wrong-extend.rb +3 -2
  292. data/smoke/wrong-include.rb +3 -2
  293. data/smoke/wrong-include2.rb +17 -0
  294. data/typeprof.gemspec +1 -1
  295. metadata +57 -5
  296. data/tools/stackprof-wrapper.rb +0 -10
@@ -20,8 +20,8 @@ C.new.bar
20
20
  __END__
21
21
  # Classes
22
22
  module M
23
- def foo : -> :foo
24
- def bar : -> :bar
23
+ def foo: -> :foo
24
+ def bar: -> :bar
25
25
  end
26
26
 
27
27
  class C
@@ -16,7 +16,7 @@ C.new.foo
16
16
  __END__
17
17
  # Classes
18
18
  module M1
19
- def foo : -> :foo
19
+ def foo: -> :foo
20
20
  end
21
21
 
22
22
  module M2
@@ -20,14 +20,14 @@ C.new.foo
20
20
  __END__
21
21
  # Classes
22
22
  module M1
23
- def foo : -> :m1
23
+ def foo: -> :m1
24
24
  end
25
25
 
26
26
  module M2
27
- def foo : -> :m2
27
+ def foo: -> :m2
28
28
  end
29
29
 
30
30
  class C
31
- include M1
32
31
  include M2
32
+ include M1
33
33
  end
@@ -21,12 +21,13 @@ C.foo
21
21
  __END__
22
22
  # Classes
23
23
  module M2
24
- def foo : -> :m2_foo
24
+ def foo: -> :m2_foo
25
25
  end
26
26
 
27
27
  module M1
28
28
  extend M2
29
- def foo : -> :m1_foo
29
+
30
+ def foo: -> :m1_foo
30
31
  end
31
32
 
32
33
  class C
@@ -0,0 +1,17 @@
1
+ module Foo
2
+ Module.new do
3
+ include Foo
4
+ extend Foo
5
+ end
6
+ end
7
+
8
+ Foo.foo
9
+ __END__
10
+ # Errors
11
+ smoke/module5.rb:8: [error] undefined method: singleton(Foo)#foo
12
+
13
+ # Classes
14
+ module Foo
15
+ extend Foo
16
+ include Foo
17
+ end
@@ -0,0 +1,40 @@
1
+ module A
2
+ end
3
+
4
+ module B
5
+ include A
6
+ end
7
+
8
+ module A
9
+ include B
10
+ end
11
+
12
+ class C
13
+ include A
14
+ end
15
+
16
+ def log
17
+ C.new.foo
18
+ end
19
+
20
+ __END__
21
+ # Errors
22
+ smoke/module6.rb:17: [error] undefined method: C#foo
23
+
24
+ # Classes
25
+ class Object
26
+ private
27
+ def log: -> untyped
28
+ end
29
+
30
+ module A
31
+ include B
32
+ end
33
+
34
+ module B
35
+ include A
36
+ end
37
+
38
+ class C
39
+ include A
40
+ end
@@ -18,11 +18,12 @@ Bar.new.bar
18
18
  __END__
19
19
  # Classes
20
20
  module Foo
21
- def foo : (:x | :y) -> (:x | :y)
22
- def self.foo : (:x | :y) -> (:x | :y)
21
+ def foo: (:x | :y x) -> (:x | :y)
22
+ def self.foo: (:x | :y x) -> (:x | :y)
23
23
  end
24
24
 
25
25
  class Bar
26
26
  include Foo
27
- def bar : -> (:x | :y)
27
+
28
+ def bar: -> (:x | :y)
28
29
  end
@@ -18,11 +18,12 @@ Bar.new.bar
18
18
  __END__
19
19
  # Classes
20
20
  module Foo
21
- def foo : (:x | :y) -> (:x | :y)
22
- def self.foo : (:x | :y) -> (:x | :y)
21
+ def foo: (:x | :y x) -> (:x | :y)
22
+ def self.foo: (:x | :y x) -> (:x | :y)
23
23
  end
24
24
 
25
25
  class Bar
26
26
  include Foo
27
- def bar : -> (:x | :y)
27
+
28
+ def bar: -> (:x | :y)
28
29
  end
@@ -10,5 +10,6 @@ __END__
10
10
  # Classes
11
11
  class Foo
12
12
  include Comparable
13
- def foo : -> nil
13
+
14
+ def foo: -> nil
14
15
  end
@@ -15,7 +15,7 @@ smoke/multiple-superclass.rb:9: [warning] superclass is not a class; Object is u
15
15
 
16
16
  # Classes
17
17
  class Object
18
- Base : singleton(A) | singleton(B)
18
+ Base: singleton(A) | singleton(B)
19
19
  end
20
20
 
21
21
  class A
@@ -15,6 +15,7 @@ end
15
15
  __END__
16
16
  # Classes
17
17
  class Object
18
- def bar : (Integer) -> Integer
19
- def foo : { (Integer) -> String } -> String
18
+ private
19
+ def bar: (Integer n) -> Integer
20
+ def foo: { (Integer) -> String } -> String
20
21
  end
@@ -12,5 +12,6 @@ end
12
12
  __END__
13
13
  # Classes
14
14
  class Object
15
- def foo : { -> (Integer | String) } -> (Integer | String)
15
+ private
16
+ def foo: { -> (Integer | String) } -> (Integer | String)
16
17
  end
@@ -16,7 +16,8 @@ dispatch(:bar)
16
16
  __END__
17
17
  # Classes
18
18
  class Object
19
- def foo : (Integer) -> Integer
20
- def bar : (Integer) -> Integer
21
- def dispatch : (:bar | :foo) -> Integer
19
+ private
20
+ def foo: (Integer x) -> Integer
21
+ def bar: (Integer x) -> Integer
22
+ def dispatch: (:bar | :foo mid) -> Integer
22
23
  end
@@ -0,0 +1,10 @@
1
+ def foo
2
+ nil.send
3
+ end
4
+
5
+ __END__
6
+ # Classes
7
+ class Object
8
+ private
9
+ def foo: -> untyped
10
+ end
@@ -0,0 +1,18 @@
1
+ class Foo
2
+ include Enumerable
3
+ end
4
+
5
+ def log
6
+ Foo.new.send(*:cycle)
7
+ end
8
+
9
+ __END__
10
+ # Classes
11
+ class Object
12
+ private
13
+ def log: -> Enumerator[untyped]
14
+ end
15
+
16
+ class Foo
17
+ include Enumerable
18
+ end
@@ -8,5 +8,6 @@ foo
8
8
  __END__
9
9
  # Classes
10
10
  class Object
11
- def foo : -> [Regexp, Integer?]
11
+ private
12
+ def foo: -> [Regexp, Integer?]
12
13
  end
@@ -9,5 +9,6 @@ foo("A", "B", "C", "Z")
9
9
  __END__
10
10
  # Classes
11
11
  class Object
12
- def foo : (String, ?Integer | String, ?Integer | String, String) -> ([String, Integer | String, Integer | String, String])
12
+ private
13
+ def foo: (String a, ?Integer | String o1, ?Integer | String o2, String z) -> ([String, Integer | String, Integer | String, String])
13
14
  end
@@ -11,5 +11,6 @@ foo("A", "B", "C", "D", "E", "Z")
11
11
  __END__
12
12
  # Classes
13
13
  class Object
14
- def foo : (String, ?Integer | String, ?Integer | String, *String, String) -> ([String, Integer | String, Integer | String, Array[String], String])
14
+ private
15
+ def foo: (String a, ?Integer | String o1, ?Integer | String o2, *String r, String z) -> ([String, Integer | String, Integer | String, Array[String], String])
15
16
  end
@@ -6,5 +6,6 @@ foo("str")
6
6
  __END__
7
7
  # Classes
8
8
  class Object
9
- def foo : (?Integer | String) -> nil
9
+ private
10
+ def foo: (?Integer | String n) -> nil
10
11
  end
@@ -13,6 +13,8 @@ bar([])
13
13
  __END__
14
14
  # Classes
15
15
  class Object
16
- def foo : -> Array[bot]
17
- def bar : (Array[bot]) -> Array[bot]
16
+ def foo: -> Array[bot]
17
+
18
+ private
19
+ def bar: (Array[bot] ary) -> Array[bot]
18
20
  end
@@ -11,5 +11,5 @@ end
11
11
  __END__
12
12
  # Classes
13
13
  class Object
14
- def foo : -> nil
14
+ def foo: -> nil
15
15
  end
@@ -9,5 +9,6 @@ foo
9
9
  __END__
10
10
  # Classes
11
11
  class Object
12
- def foo : -> Pathname
12
+ private
13
+ def foo: -> Pathname
13
14
  end
@@ -9,5 +9,6 @@ foo
9
9
  __END__
10
10
  # Classes
11
11
  class Object
12
- def foo : -> Pathname
12
+ private
13
+ def foo: -> Pathname
13
14
  end
@@ -19,5 +19,6 @@ smoke/pattern-match1.rb:5: [error] undefined method: nil#[]
19
19
 
20
20
  # Classes
21
21
  class Object
22
- def foo : -> ([:a | untyped, :b | untyped])
22
+ private
23
+ def foo: -> ([:a | untyped, :b | untyped])
23
24
  end
@@ -11,5 +11,6 @@ foo
11
11
  __END__
12
12
  # Classes
13
13
  class Object
14
- def foo : -> [:A, :B]
14
+ private
15
+ def foo: -> [:A, :B]
15
16
  end
@@ -0,0 +1,33 @@
1
+ module Mod
2
+ def foo
3
+ [42, super(:sym)]
4
+ end
5
+ end
6
+
7
+ class Foo
8
+ prepend Mod
9
+
10
+ def foo(sym_arg)
11
+ sym_arg.to_s
12
+ end
13
+
14
+ def bar
15
+ foo
16
+ end
17
+ end
18
+
19
+ __END__
20
+ # Errors
21
+ smoke/prepend1.rb:3: [error] no superclass method: Mod#foo
22
+
23
+ # Classes
24
+ module Mod
25
+ def foo: -> ([Integer, String | untyped])
26
+ end
27
+
28
+ class Foo
29
+ prepend Mod
30
+
31
+ def foo: (:sym | untyped sym_arg) -> (String | untyped)
32
+ def bar: -> ([Integer, String | untyped])
33
+ end
@@ -0,0 +1,10 @@
1
+ def log
2
+ Foo.new.foo("str")
3
+ end
4
+
5
+ __END__
6
+ # Classes
7
+ class Object
8
+ private
9
+ def log: -> Integer
10
+ end
@@ -0,0 +1,9 @@
1
+ module Mod
2
+ def foo: (String | Integer) -> Integer
3
+ end
4
+
5
+ class Foo
6
+ prepend Mod
7
+
8
+ def foo: (Integer) -> (String | Integer)
9
+ end
@@ -0,0 +1,19 @@
1
+ def foo
2
+ __method__
3
+ end
4
+
5
+ def log(dummy)
6
+ end
7
+
8
+ def bar
9
+ log(__method__)
10
+ end
11
+
12
+ __END__
13
+ # Classes
14
+ class Object
15
+ private
16
+ def foo: -> :foo
17
+ def log: (:bar | untyped dummy) -> nil
18
+ def bar: -> nil
19
+ end
@@ -15,6 +15,6 @@ F.new.bar
15
15
  __END__
16
16
  # Classes
17
17
  class F
18
- def foo : -> nil
19
- def bar : -> nil
18
+ def foo: -> nil
19
+ def bar: -> nil
20
20
  end
@@ -14,6 +14,7 @@ bar
14
14
  __END__
15
15
  # Classes
16
16
  class Object
17
- def foo : -> Integer
18
- def bar : -> String
17
+ private
18
+ def foo: -> Integer
19
+ def bar: -> String
19
20
  end
@@ -12,5 +12,6 @@ foo
12
12
  __END__
13
13
  # Classes
14
14
  class Object
15
- def foo : -> Integer
15
+ private
16
+ def foo: -> Integer
16
17
  end
@@ -10,5 +10,6 @@ foo
10
10
  __END__
11
11
  # Classes
12
12
  class Object
13
- def foo : -> [Integer]
13
+ private
14
+ def foo: -> [Integer]
14
15
  end
@@ -7,5 +7,6 @@ foo(-> x { "str" })
7
7
  __END__
8
8
  # Classes
9
9
  class Object
10
- def foo : (^(Integer) -> String) -> String
10
+ private
11
+ def foo: (^(Integer) -> String f) -> String
11
12
  end