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
@@ -0,0 +1,43 @@
1
+ class Foo
2
+ def initialize
3
+ @foo = 42
4
+ end
5
+
6
+ private
7
+ attr_accessor :foo
8
+
9
+ public
10
+ def get_foo
11
+ foo
12
+ end
13
+ def set_foo(arg)
14
+ self.foo = arg
15
+ end
16
+ def get_bar
17
+ bar
18
+ end
19
+ def set_bar(arg)
20
+ self.bar = arg
21
+ end
22
+ end
23
+
24
+ Foo.new.set_foo("str")
25
+ Foo.new.set_bar("str")
26
+
27
+ __END__
28
+ # Errors
29
+ smoke/attr-vis.rb:20: [warning] inconsistent assignment to RBS-declared variable
30
+
31
+ # Classes
32
+ class Foo
33
+ def initialize: -> Integer
34
+
35
+ private
36
+ attr_accessor foo: Integer | String
37
+
38
+ public
39
+ def get_foo: -> (Integer | String)
40
+ def set_foo: (String arg) -> String
41
+ def get_bar: -> Integer
42
+ def set_bar: (String arg) -> String
43
+ end
@@ -0,0 +1,4 @@
1
+ class Foo
2
+ private
3
+ attr_accessor bar: Integer
4
+ end
@@ -20,9 +20,9 @@ foo.c = :ccc
20
20
  __END__
21
21
  # Classes
22
22
  class Foo
23
- attr_reader a : :aaa
24
- attr_writer b : :bbb
25
- attr_accessor c : :ccc
26
- def initialize : (:aaa) -> :aaa
27
- def get_b : -> :bbb
23
+ def initialize: (:aaa a) -> :aaa
24
+ attr_reader a: :aaa
25
+ attr_writer b: :bbb
26
+ def get_b: -> :bbb
27
+ attr_accessor c: :ccc
28
28
  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
@@ -26,7 +26,8 @@ smoke/backtrace.rb:2: [error] undefined method: Object#unknown_method
26
26
 
27
27
  # Classes
28
28
  class Object
29
- def foo : -> untyped
30
- def bar : -> untyped
31
- def baz : -> untyped
29
+ private
30
+ def foo: -> untyped
31
+ def bar: -> untyped
32
+ def baz: -> untyped
32
33
  end
@@ -25,12 +25,13 @@ f4 {|x,| log4(x) }
25
25
  __END__
26
26
  # Classes
27
27
  class Object
28
- def f1 : { (:a, :b, :c) -> nil } -> nil
29
- def log1 : (:a) -> nil
30
- def f2 : { (:a, :b, :c) -> nil } -> nil
31
- def log2 : (:a) -> nil
32
- def f3 : { ([:a, :b, :c]) -> nil } -> nil
33
- def log3 : ([:a, :b, :c]) -> nil
34
- def f4 : { ([:a, :b, :c]) -> nil } -> nil
35
- def log4 : (:a) -> nil
28
+ private
29
+ def f1: { (:a, :b, :c) -> nil } -> nil
30
+ def log1: (:a x) -> nil
31
+ def f2: { (:a, :b, :c) -> nil } -> nil
32
+ def log2: (:a x) -> nil
33
+ def f3: { ([:a, :b, :c]) -> nil } -> nil
34
+ def log3: ([:a, :b, :c] x) -> nil
35
+ def f4: { ([:a, :b, :c]) -> nil } -> nil
36
+ def log4: (:a x) -> nil
36
37
  end
@@ -48,15 +48,17 @@ end
48
48
  __END__
49
49
  # Classes
50
50
  class Object
51
- StringArray : Array[String]
52
- def f1 : { (*String) -> nil } -> (^(String, ?:opt | String, String) -> nil)
53
- def log1 : (String, :opt | String, String) -> nil
54
- def f2 : { (:a, *String) -> nil } -> (^(:a, ?:opt | String, String) -> nil)
55
- def log2 : (:a, :opt | String, String) -> nil
56
- def f3 : { (:a, :b, *String) -> nil } -> (^(:a, ?:b | :opt, :b | String) -> nil)
57
- def log3 : (:a, :b | :opt, :b | String) -> nil
58
- def f4 : { (:a, :b, :c, *String) -> nil } -> (^(:a, ?:b | :opt, :b | :c) -> nil)
59
- def log4 : (:a, :b | :opt, :b | :c) -> nil
60
- def f5 : { (:a, :b, :c, :d, *String) -> nil } -> (^(:a, ?:b | :opt, :b | :c) -> nil)
61
- def log5 : (:a, :b | :opt, :b | :c) -> nil
51
+ StringArray: Array[String]
52
+
53
+ private
54
+ def f1: { (*String) -> nil } -> (^(String, ?:opt | String, String) -> nil)
55
+ def log1: (String a, :opt | String o, String c) -> nil
56
+ def f2: { (:a, *String) -> nil } -> (^(:a, ?:opt | String, String) -> nil)
57
+ def log2: (:a a, :opt | String o, String c) -> nil
58
+ def f3: { (:a, :b, *String) -> nil } -> (^(:a, ?:b | :opt, :b | String) -> nil)
59
+ def log3: (:a a, :b | :opt o, :b | String c) -> nil
60
+ def f4: { (:a, :b, :c, *String) -> nil } -> (^(:a, ?:b | :opt, :b | :c) -> nil)
61
+ def log4: (:a a, :b | :opt o, :b | :c c) -> nil
62
+ def f5: { (:a, :b, :c, :d, *String) -> nil } -> (^(:a, ?:b | :opt, :b | :c) -> nil)
63
+ def log5: (:a a, :b | :opt o, :b | :c c) -> nil
62
64
  end
@@ -46,14 +46,15 @@ end
46
46
  __END__
47
47
  # Classes
48
48
  class Object
49
- def f1 : { -> nil } -> ^(nil, ?:opt, nil) -> nil
50
- def log1 : (nil, :opt, nil) -> nil
51
- def f2 : { (:a) -> nil } -> ^(:a, ?:opt, nil) -> nil
52
- def log2 : (:a, :opt, nil) -> nil
53
- def f3 : { (:a, :b) -> nil } -> ^(:a, ?:opt, :b) -> nil
54
- def log3 : (:a, :opt, :b) -> nil
55
- def f4 : { (:a, :b, :c) -> nil } -> (^(:a, ?:b | :opt, :c) -> nil)
56
- def log4 : (:a, :b | :opt, :c) -> nil
57
- def f5 : { (:a, :b, :c, :d) -> nil } -> (^(:a, ?:b | :opt, :c) -> nil)
58
- def log5 : (:a, :b | :opt, :c) -> nil
49
+ private
50
+ def f1: { -> nil } -> ^(nil, ?:opt, nil) -> nil
51
+ def log1: (nil a, :opt o, nil c) -> nil
52
+ def f2: { (:a) -> nil } -> ^(:a, ?:opt, nil) -> nil
53
+ def log2: (:a a, :opt o, nil c) -> nil
54
+ def f3: { (:a, :b) -> nil } -> ^(:a, ?:opt, :b) -> nil
55
+ def log3: (:a a, :opt o, :b c) -> nil
56
+ def f4: { (:a, :b, :c) -> nil } -> (^(:a, ?:b | :opt, :c) -> nil)
57
+ def log4: (:a a, :b | :opt o, :c c) -> nil
58
+ def f5: { (:a, :b, :c, :d) -> nil } -> (^(:a, ?:b | :opt, :c) -> nil)
59
+ def log5: (:a a, :b | :opt o, :c c) -> nil
59
60
  end
@@ -48,15 +48,17 @@ end
48
48
  __END__
49
49
  # Classes
50
50
  class Object
51
- StringArray : Array[String]
52
- def f1 : { (*String) -> nil } -> ^(String, *String, String) -> nil
53
- def log1 : (String, Array[String], String) -> nil
54
- def f2 : { (:a, *String) -> nil } -> ^(:a, *String, String) -> nil
55
- def log2 : (:a, Array[String], String) -> nil
56
- def f3 : { (:a, :b, *String) -> nil } -> (^(:a, *:b | String, :b | String) -> nil)
57
- def log3 : (:a, Array[:b | String], :b | String) -> nil
58
- def f4 : { (:a, :b, :c, *String) -> nil } -> (^(:a, *:b | :c | String, :c | String) -> nil)
59
- def log4 : (:a, Array[:b | :c | String], :c | String) -> nil
60
- def f5 : { (:a, :b, :c, :d, *String) -> nil } -> (^(:a, *:b | :c | :d | String, :d | String) -> nil)
61
- def log5 : (:a, Array[:b | :c | :d | String], :d | String) -> nil
51
+ StringArray: Array[String]
52
+
53
+ private
54
+ def f1: { (*String) -> nil } -> ^(String, *String, String) -> nil
55
+ def log1: (String a, Array[String] r, String c) -> nil
56
+ def f2: { (:a, *String) -> nil } -> ^(:a, *String, String) -> nil
57
+ def log2: (:a a, Array[String] r, String c) -> nil
58
+ def f3: { (:a, :b, *String) -> nil } -> (^(:a, *:b | String, :b | String) -> nil)
59
+ def log3: (:a a, Array[:b | String] r, :b | String c) -> nil
60
+ def f4: { (:a, :b, :c, *String) -> nil } -> (^(:a, *:b | :c | String, :c | String) -> nil)
61
+ def log4: (:a a, Array[:b | :c | String] r, :c | String c) -> nil
62
+ def f5: { (:a, :b, :c, :d, *String) -> nil } -> (^(:a, *:b | :c | :d | String, :d | String) -> nil)
63
+ def log5: (:a a, Array[:b | :c | :d | String] r, :d | String c) -> nil
62
64
  end
@@ -46,14 +46,15 @@ end
46
46
  __END__
47
47
  # Classes
48
48
  class Object
49
- def f1 : { -> nil } -> ^(nil, *bot, nil) -> nil
50
- def log1 : (nil, Array[bot], nil) -> nil
51
- def f2 : { (:a) -> nil } -> ^(:a, *bot, nil) -> nil
52
- def log2 : (:a, Array[bot], nil) -> nil
53
- def f3 : { (:a, :b) -> nil } -> ^(:a, *bot, :b) -> nil
54
- def log3 : (:a, Array[bot], :b) -> nil
55
- def f4 : { (:a, :b, :c) -> nil } -> ^(:a, *:b, :c) -> nil
56
- def log4 : (:a, [:b], :c) -> nil
57
- def f5 : { (:a, :b, :c, :d) -> nil } -> (^(:a, *:b | :c, :d) -> nil)
58
- def log5 : (:a, [:b, :c], :d) -> nil
49
+ private
50
+ def f1: { -> nil } -> ^(nil, *bot, nil) -> nil
51
+ def log1: (nil a, Array[bot] r, nil c) -> nil
52
+ def f2: { (:a) -> nil } -> ^(:a, *bot, nil) -> nil
53
+ def log2: (:a a, Array[bot] r, nil c) -> nil
54
+ def f3: { (:a, :b) -> nil } -> ^(:a, *bot, :b) -> nil
55
+ def log3: (:a a, Array[bot] r, :b c) -> nil
56
+ def f4: { (:a, :b, :c) -> nil } -> ^(:a, *:b, :c) -> nil
57
+ def log4: (:a a, [:b] r, :c c) -> nil
58
+ def f5: { (:a, :b, :c, :d) -> nil } -> (^(:a, *:b | :c, :d) -> nil)
59
+ def log5: (:a a, [:b, :c] r, :d c) -> nil
59
60
  end
@@ -57,17 +57,19 @@ end
57
57
  __END__
58
58
  # Classes
59
59
  class Object
60
- StringArray : Array[String]
61
- def f1 : { (*String) -> nil } -> (^(String, ?:opt | String, *String, String) -> nil)
62
- def log1 : (String, :opt | String, Array[String], String) -> nil
63
- def f2 : { (:a, *String) -> nil } -> (^(:a, ?:opt | String, *String, String) -> nil)
64
- def log2 : (:a, :opt | String, Array[String], String) -> nil
65
- def f3 : { (:a, :b, *String) -> nil } -> (^(:a, ?:b | :opt, *String, :b | String) -> nil)
66
- def log3 : (:a, :b | :opt, Array[String], :b | String) -> nil
67
- def f4 : { (:a, :b, :c, *String) -> nil } -> (^(:a, ?:b | :opt, *:c | String, :c | String) -> nil)
68
- def log4 : (:a, :b | :opt, Array[:c | String], :c | String) -> nil
69
- def f5 : { (:a, :b, :c, :d, *String) -> nil } -> (^(:a, ?:b | :opt, *:c | :d | String, :d | String) -> nil)
70
- def log5 : (:a, :b | :opt, Array[:c | :d | String], :d | String) -> nil
71
- def f6 : { (:a, :b, :c, :d, :e, *String) -> nil } -> (^(:a, ?:b | :opt, *:c | :d | :e | String, :e | String) -> nil)
72
- def log6 : (:a, :b | :opt, Array[:c | :d | :e | String], :e | String) -> nil
60
+ StringArray: Array[String]
61
+
62
+ private
63
+ def f1: { (*String) -> nil } -> (^(String, ?:opt | String, *String, String) -> nil)
64
+ def log1: (String a, :opt | String o, Array[String] r, String c) -> nil
65
+ def f2: { (:a, *String) -> nil } -> (^(:a, ?:opt | String, *String, String) -> nil)
66
+ def log2: (:a a, :opt | String o, Array[String] r, String c) -> nil
67
+ def f3: { (:a, :b, *String) -> nil } -> (^(:a, ?:b | :opt, *String, :b | String) -> nil)
68
+ def log3: (:a a, :b | :opt o, Array[String] r, :b | String c) -> nil
69
+ def f4: { (:a, :b, :c, *String) -> nil } -> (^(:a, ?:b | :opt, *:c | String, :c | String) -> nil)
70
+ def log4: (:a a, :b | :opt o, Array[:c | String] r, :c | String c) -> nil
71
+ def f5: { (:a, :b, :c, :d, *String) -> nil } -> (^(:a, ?:b | :opt, *:c | :d | String, :d | String) -> nil)
72
+ def log5: (:a a, :b | :opt o, Array[:c | :d | String] r, :d | String c) -> nil
73
+ def f6: { (:a, :b, :c, :d, :e, *String) -> nil } -> (^(:a, ?:b | :opt, *:c | :d | :e | String, :e | String) -> nil)
74
+ def log6: (:a a, :b | :opt o, Array[:c | :d | :e | String] r, :e | String c) -> nil
73
75
  end
@@ -55,16 +55,17 @@ end
55
55
  __END__
56
56
  # Classes
57
57
  class Object
58
- def f1 : { -> nil } -> ^(nil, ?:opt, *bot, nil) -> nil
59
- def log1 : (nil, :opt, Array[bot], nil) -> nil
60
- def f2 : { (:a) -> nil } -> ^(:a, ?:opt, *bot, nil) -> nil
61
- def log2 : (:a, :opt, Array[bot], nil) -> nil
62
- def f3 : { (:a, :b) -> nil } -> ^(:a, ?:opt, *bot, :b) -> nil
63
- def log3 : (:a, :opt, Array[bot], :b) -> nil
64
- def f4 : { (:a, :b, :c) -> nil } -> (^(:a, ?:b | :opt, *bot, :c) -> nil)
65
- def log4 : (:a, :b | :opt, Array[bot], :c) -> nil
66
- def f5 : { (:a, :b, :c, :d) -> nil } -> (^(:a, ?:b | :opt, *:c, :d) -> nil)
67
- def log5 : (:a, :b | :opt, [:c], :d) -> nil
68
- def f6 : { (:a, :b, :c, :d, :e) -> nil } -> (^(:a, ?:b | :opt, *:c | :d, :e) -> nil)
69
- def log6 : (:a, :b | :opt, [:c, :d], :e) -> nil
58
+ private
59
+ def f1: { -> nil } -> ^(nil, ?:opt, *bot, nil) -> nil
60
+ def log1: (nil a, :opt o, Array[bot] r, nil c) -> nil
61
+ def f2: { (:a) -> nil } -> ^(:a, ?:opt, *bot, nil) -> nil
62
+ def log2: (:a a, :opt o, Array[bot] r, nil c) -> nil
63
+ def f3: { (:a, :b) -> nil } -> ^(:a, ?:opt, *bot, :b) -> nil
64
+ def log3: (:a a, :opt o, Array[bot] r, :b c) -> nil
65
+ def f4: { (:a, :b, :c) -> nil } -> (^(:a, ?:b | :opt, *bot, :c) -> nil)
66
+ def log4: (:a a, :b | :opt o, Array[bot] r, :c c) -> nil
67
+ def f5: { (:a, :b, :c, :d) -> nil } -> (^(:a, ?:b | :opt, *:c, :d) -> nil)
68
+ def log5: (:a a, :b | :opt o, [:c] r, :d c) -> nil
69
+ def f6: { (:a, :b, :c, :d, :e) -> nil } -> (^(:a, ?:b | :opt, *:c | :d, :e) -> nil)
70
+ def log6: (:a a, :b | :opt o, [:c, :d] r, :e c) -> nil
70
71
  end
@@ -20,8 +20,9 @@ end
20
20
  __END__
21
21
  # Classes
22
22
  class Object
23
- def log1 : (:a) -> nil
24
- def log2 : (:b) -> nil
25
- def log3 : (:c) -> nil
26
- def f : { -> :c } -> :d
23
+ private
24
+ def log1: (:a x) -> nil
25
+ def log2: (:b x) -> nil
26
+ def log3: (:c x) -> nil
27
+ def f: { -> :c } -> :d
27
28
  end
@@ -39,14 +39,15 @@ smoke/block-kwarg.rb:31: [error] no argument for required keywords
39
39
 
40
40
  # Classes
41
41
  class Object
42
- def f1 : { -> nil } -> nil
43
- def log1 : (Integer) -> nil
44
- def f2 : { -> nil } -> nil
45
- def log2 : (:opt | Integer) -> nil
46
- def f3 : { -> nil } -> nil
47
- def log3 : (Integer | String) -> nil
48
- def f4 : { -> nil } -> nil
49
- def log4 : ({k: Integer}) -> nil
50
- def f5 : { -> nil } -> untyped
51
- def f6 : { -> nil } -> untyped
42
+ private
43
+ def f1: { -> nil } -> nil
44
+ def log1: (Integer n) -> nil
45
+ def f2: { -> nil } -> nil
46
+ def log2: (:opt | Integer n) -> nil
47
+ def f3: { -> nil } -> nil
48
+ def log3: (Integer | String n) -> nil
49
+ def f4: { -> nil } -> nil
50
+ def log4: ({k: Integer} kwrest) -> nil
51
+ def f5: { -> nil } -> untyped
52
+ def f6: { -> nil } -> untyped
52
53
  end
@@ -18,5 +18,6 @@ end
18
18
  __END__
19
19
  # Classes
20
20
  class Object
21
- def foo : (:sym | String) { (:sym | Integer | String) -> (:sym | Integer | String) } -> (:sym | Integer | String)
21
+ private
22
+ def foo: (:sym | String x) { (:sym | Integer | String) -> (:sym | Integer | String) } -> (:sym | Integer | String)
22
23
  end
@@ -10,5 +10,6 @@ foo([1], ["str"])
10
10
  __END__
11
11
  # Classes
12
12
  class Object
13
- def foo : ([Integer], [String]) -> ([Integer | String])
13
+ private
14
+ def foo: ([Integer] ary1, [String] ary2) -> ([Integer | String])
14
15
  end
@@ -31,9 +31,10 @@ bar
31
31
  __END__
32
32
  # Classes
33
33
  class Object
34
- def log1 : (Integer?) -> nil
35
- def log2 : (Integer?) -> nil
36
- def foo : -> Integer?
37
- def test_yield : { -> nil } -> nil
38
- def bar : -> Integer?
34
+ private
35
+ def log1: (Integer? x) -> nil
36
+ def log2: (Integer? x) -> nil
37
+ def foo: -> Integer?
38
+ def test_yield: { -> nil } -> nil
39
+ def bar: -> Integer?
39
40
  end
@@ -17,6 +17,7 @@ bar
17
17
  __END__
18
18
  # Classes
19
19
  class Object
20
- def foo : -> [:foo]
21
- def bar : -> [:bar]
20
+ private
21
+ def foo: -> [:foo]
22
+ def bar: -> [:bar]
22
23
  end
@@ -9,9 +9,10 @@ $blk.call(42)
9
9
 
10
10
  __END__
11
11
  # Global variables
12
- $blk : ^(Integer) -> nil
12
+ $blk: ^(Integer) -> nil
13
13
 
14
14
  # Classes
15
15
  class Object
16
- def foo : { (Integer) -> nil } -> nil
16
+ private
17
+ def foo: { (Integer) -> nil } -> nil
17
18
  end
@@ -10,5 +10,6 @@ end
10
10
  __END__
11
11
  # Classes
12
12
  class Object
13
- def foo : (Integer) { (Integer) -> String } -> String
13
+ private
14
+ def foo: (Integer x) { (Integer) -> String } -> String
14
15
  end
@@ -26,13 +26,13 @@ Bar.new.bar
26
26
  __END__
27
27
  # Classes
28
28
  class Common
29
- def func : (:sym | String) { (Integer) -> (:sym2 | Integer) } -> (:sym2 | Integer)
29
+ def func: (:sym | String x) { (Integer) -> (:sym2 | Integer) } -> (:sym2 | Integer)
30
30
  end
31
31
 
32
32
  class Foo
33
- def foo : -> (:sym2 | Integer)
33
+ def foo: -> (:sym2 | Integer)
34
34
  end
35
35
 
36
36
  class Bar
37
- def bar : -> (:sym2 | Integer)
37
+ def bar: -> (:sym2 | Integer)
38
38
  end
@@ -13,6 +13,7 @@ bar(&blk)
13
13
  __END__
14
14
  # Classes
15
15
  class Object
16
- def foo : { (:sym | String) -> (:sym | String) } -> (:sym | String)
17
- def bar : { (:sym | String) -> (:sym | String) } -> (:sym | String)
16
+ private
17
+ def foo: { (:sym | String) -> (:sym | String) } -> (:sym | String)
18
+ def bar: { (:sym | String) -> (:sym | String) } -> (:sym | String)
18
19
  end
@@ -14,6 +14,8 @@ end
14
14
  __END__
15
15
  # Classes
16
16
  class Object
17
- F : ^(Integer) -> String
18
- def foo : { (:sym) -> String } -> String
17
+ F: ^(Integer) -> String
18
+
19
+ private
20
+ def foo: { (:sym) -> String } -> String
19
21
  end
@@ -15,6 +15,7 @@ foo
15
15
  __END__
16
16
  # Classes
17
17
  class Object
18
- def bar : { -> String } -> String
19
- def foo : -> (Integer | String)
18
+ private
19
+ def bar: { -> String } -> String
20
+ def foo: -> (Integer | String)
20
21
  end