typeprof 0.5.4 → 0.9.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 (289) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +7 -5
  3. data/doc/doc.ja.md +3 -4
  4. data/doc/doc.md +3 -4
  5. data/lib/typeprof/analyzer.rb +308 -171
  6. data/lib/typeprof/arguments.rb +14 -6
  7. data/lib/typeprof/block.rb +6 -2
  8. data/lib/typeprof/builtin.rb +230 -67
  9. data/lib/typeprof/cli.rb +33 -34
  10. data/lib/typeprof/config.rb +6 -4
  11. data/lib/typeprof/container-type.rb +159 -104
  12. data/lib/typeprof/export.rb +28 -22
  13. data/lib/typeprof/import.rb +70 -53
  14. data/lib/typeprof/iseq.rb +23 -7
  15. data/lib/typeprof/method.rb +71 -138
  16. data/lib/typeprof/type.rb +73 -15
  17. data/lib/typeprof/version.rb +1 -1
  18. data/smoke/alias.rb +5 -4
  19. data/smoke/alias2.rb +4 -4
  20. data/smoke/any1.rb +2 -1
  21. data/smoke/any2.rb +3 -2
  22. data/smoke/arguments.rb +3 -2
  23. data/smoke/arguments2.rb +11 -10
  24. data/smoke/array-each.rb +2 -1
  25. data/smoke/array-each2.rb +2 -1
  26. data/smoke/array-each3.rb +2 -1
  27. data/smoke/array-ltlt.rb +2 -1
  28. data/smoke/array-ltlt2.rb +2 -1
  29. data/smoke/array-map.rb +2 -1
  30. data/smoke/array-map2.rb +2 -1
  31. data/smoke/array-map3.rb +4 -3
  32. data/smoke/array-mul.rb +3 -2
  33. data/smoke/array-plus1.rb +2 -1
  34. data/smoke/array-plus2.rb +2 -2
  35. data/smoke/array-pop.rb +2 -1
  36. data/smoke/array-range-aref.rb +71 -0
  37. data/smoke/array-replace.rb +2 -1
  38. data/smoke/array-s-aref.rb +2 -1
  39. data/smoke/array1.rb +6 -5
  40. data/smoke/array10.rb +2 -1
  41. data/smoke/array11.rb +2 -1
  42. data/smoke/array12.rb +4 -3
  43. data/smoke/array13.rb +5 -4
  44. data/smoke/array14.rb +2 -1
  45. data/smoke/array15.rb +16 -0
  46. data/smoke/array2.rb +4 -3
  47. data/smoke/array3.rb +4 -4
  48. data/smoke/array4.rb +2 -1
  49. data/smoke/array5.rb +2 -1
  50. data/smoke/array6.rb +3 -2
  51. data/smoke/array7.rb +2 -1
  52. data/smoke/array8.rb +1 -1
  53. data/smoke/array9.rb +2 -1
  54. data/smoke/attr-module.rb +26 -0
  55. data/smoke/attr.rb +5 -5
  56. data/smoke/autoload.rb +14 -0
  57. data/smoke/backtrace.rb +4 -3
  58. data/smoke/block-ambiguous.rb +9 -8
  59. data/smoke/block-args1-rest.rb +12 -11
  60. data/smoke/block-args1.rb +11 -10
  61. data/smoke/block-args2-rest.rb +12 -11
  62. data/smoke/block-args2.rb +11 -10
  63. data/smoke/block-args3-rest.rb +14 -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 +3 -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/blown.rb +2 -1
  81. data/smoke/break1.rb +3 -2
  82. data/smoke/break2.rb +2 -1
  83. data/smoke/break3.rb +13 -0
  84. data/smoke/case.rb +2 -1
  85. data/smoke/case2.rb +2 -1
  86. data/smoke/case3.rb +17 -0
  87. data/smoke/class-hierarchy.rb +5 -5
  88. data/smoke/class-hierarchy2.rb +3 -3
  89. data/smoke/class-new.rb +15 -0
  90. data/smoke/class_instance_var.rb +1 -1
  91. data/smoke/class_method.rb +2 -2
  92. data/smoke/class_method2.rb +2 -2
  93. data/smoke/class_method3.rb +4 -2
  94. data/smoke/constant1.rb +6 -6
  95. data/smoke/constant2.rb +5 -4
  96. data/smoke/constant3.rb +2 -1
  97. data/smoke/constant4.rb +2 -1
  98. data/smoke/context-sensitive1.rb +2 -1
  99. data/smoke/cvar.rb +6 -5
  100. data/smoke/cvar2.rb +2 -2
  101. data/smoke/define_method.rb +16 -0
  102. data/smoke/define_method2.rb +18 -0
  103. data/smoke/define_method3.rb +13 -0
  104. data/smoke/define_method3.rbs +3 -0
  105. data/smoke/define_method4.rb +15 -0
  106. data/smoke/define_method4.rbs +3 -0
  107. data/smoke/define_method5.rb +12 -0
  108. data/smoke/demo.rb +7 -6
  109. data/smoke/demo1.rb +2 -1
  110. data/smoke/demo10.rb +3 -2
  111. data/smoke/demo11.rb +2 -1
  112. data/smoke/demo2.rb +2 -1
  113. data/smoke/demo3.rb +2 -1
  114. data/smoke/demo4.rb +3 -3
  115. data/smoke/demo5.rb +1 -1
  116. data/smoke/demo6.rb +3 -3
  117. data/smoke/demo7.rb +2 -1
  118. data/smoke/demo8.rb +3 -2
  119. data/smoke/demo9.rb +3 -2
  120. data/smoke/dummy-execution1.rb +3 -2
  121. data/smoke/dummy-execution2.rb +2 -2
  122. data/smoke/dummy_element.rb +14 -0
  123. data/smoke/ensure1.rb +3 -2
  124. data/smoke/enumerator.rb +3 -2
  125. data/smoke/expandarray1.rb +2 -1
  126. data/smoke/expandarray2.rb +2 -1
  127. data/smoke/fib.rb +2 -2
  128. data/smoke/flip-flop.rb +28 -0
  129. data/smoke/flow1.rb +2 -1
  130. data/smoke/flow2.rb +2 -1
  131. data/smoke/flow3.rb +2 -1
  132. data/smoke/flow5.rb +2 -1
  133. data/smoke/flow6.rb +2 -1
  134. data/smoke/flow7.rb +2 -1
  135. data/smoke/flow8.rb +2 -1
  136. data/smoke/flow9.rb +12 -0
  137. data/smoke/freeze.rb +2 -1
  138. data/smoke/function.rb +3 -2
  139. data/smoke/gvar.rb +3 -2
  140. data/smoke/gvar2.rb +3 -2
  141. data/smoke/hash-bot.rb +12 -0
  142. data/smoke/hash-fetch.rb +4 -3
  143. data/smoke/hash-merge-bang.rb +2 -1
  144. data/smoke/hash1.rb +3 -2
  145. data/smoke/hash2.rb +2 -1
  146. data/smoke/hash3.rb +2 -1
  147. data/smoke/hash4.rb +2 -1
  148. data/smoke/hash5.rb +1 -1
  149. data/smoke/inheritance.rb +4 -4
  150. data/smoke/inheritance2.rb +2 -2
  151. data/smoke/initialize.rb +6 -5
  152. data/smoke/instance_eval.rb +2 -2
  153. data/smoke/instance_eval2.rb +10 -0
  154. data/smoke/instance_eval3.rb +25 -0
  155. data/smoke/int_times.rb +2 -1
  156. data/smoke/integer.rb +2 -1
  157. data/smoke/ivar.rb +5 -4
  158. data/smoke/ivar2.rb +4 -4
  159. data/smoke/ivar3.rb +2 -2
  160. data/smoke/kernel-class.rb +2 -1
  161. data/smoke/keyword1.rb +2 -1
  162. data/smoke/keyword2.rb +2 -1
  163. data/smoke/keyword3.rb +2 -1
  164. data/smoke/keyword4.rb +2 -1
  165. data/smoke/keyword5.rb +2 -1
  166. data/smoke/kwrest.rb +12 -0
  167. data/smoke/kwrest.rbs +3 -0
  168. data/smoke/kwsplat1.rb +5 -4
  169. data/smoke/kwsplat2.rb +2 -1
  170. data/smoke/lit-complex.rb +10 -0
  171. data/smoke/lit-encoding.rb +10 -0
  172. data/smoke/manual-rbs.rb +4 -3
  173. data/smoke/manual-rbs2.rb +2 -1
  174. data/smoke/manual-rbs3.rb +2 -2
  175. data/smoke/masgn1.rb +2 -1
  176. data/smoke/masgn2.rb +3 -2
  177. data/smoke/masgn3.rb +2 -1
  178. data/smoke/method_in_branch.rb +3 -2
  179. data/smoke/method_missing.rb +28 -0
  180. data/smoke/module1.rb +2 -2
  181. data/smoke/module2.rb +1 -1
  182. data/smoke/module3.rb +2 -2
  183. data/smoke/module4.rb +2 -2
  184. data/smoke/module5.rb +17 -0
  185. data/smoke/module6.rb +40 -0
  186. data/smoke/module_function1.rb +3 -3
  187. data/smoke/module_function2.rb +3 -3
  188. data/smoke/multiple-include.rb +1 -1
  189. data/smoke/multiple-superclass.rb +1 -1
  190. data/smoke/next1.rb +3 -2
  191. data/smoke/next2.rb +2 -1
  192. data/smoke/object-send1.rb +4 -3
  193. data/smoke/object-send2.rb +10 -0
  194. data/smoke/object-send3.rb +18 -0
  195. data/smoke/once.rb +2 -1
  196. data/smoke/optional1.rb +2 -1
  197. data/smoke/optional2.rb +2 -1
  198. data/smoke/optional3.rb +2 -1
  199. data/smoke/parameterizedd-self.rb +3 -2
  200. data/smoke/parameterizedd-self2.rb +15 -0
  201. data/smoke/pathname1.rb +2 -1
  202. data/smoke/pathname2.rb +2 -1
  203. data/smoke/pattern-match1.rb +2 -1
  204. data/smoke/pattern-match2.rb +2 -1
  205. data/smoke/printf.rb +2 -2
  206. data/smoke/proc.rb +3 -2
  207. data/smoke/proc2.rb +2 -1
  208. data/smoke/proc3.rb +2 -1
  209. data/smoke/proc4.rb +2 -1
  210. data/smoke/proc5.rb +19 -0
  211. data/smoke/public.rb +34 -0
  212. data/smoke/range.rb +2 -1
  213. data/smoke/rbs-alias.rb +2 -1
  214. data/smoke/rbs-attr.rb +6 -5
  215. data/smoke/rbs-attr2.rb +11 -0
  216. data/smoke/rbs-attr2.rbs +3 -0
  217. data/smoke/rbs-extend.rb +2 -1
  218. data/smoke/rbs-interface.rb +5 -4
  219. data/smoke/rbs-module.rb +26 -0
  220. data/smoke/rbs-module.rbs +4 -0
  221. data/smoke/rbs-opt-and-rest.rb +10 -0
  222. data/smoke/rbs-opt-and-rest.rbs +3 -0
  223. data/smoke/rbs-proc1.rb +2 -1
  224. data/smoke/rbs-proc2.rb +3 -2
  225. data/smoke/rbs-proc3.rb +2 -1
  226. data/smoke/rbs-record.rb +3 -2
  227. data/smoke/rbs-tyvar.rb +3 -2
  228. data/smoke/rbs-tyvar2.rb +3 -2
  229. data/smoke/rbs-tyvar3.rb +3 -2
  230. data/smoke/rbs-tyvar4.rb +3 -3
  231. data/smoke/rbs-tyvar5.rb +2 -1
  232. data/smoke/rbs-tyvar6.rb +18 -0
  233. data/smoke/rbs-tyvar6.rbs +12 -0
  234. data/smoke/rbs-tyvar7.rb +12 -0
  235. data/smoke/rbs-tyvar7.rbs +7 -0
  236. data/smoke/rbs-vars.rb +7 -8
  237. data/smoke/redo1.rb +3 -2
  238. data/smoke/redo2.rb +3 -2
  239. data/smoke/req-keyword.rb +2 -1
  240. data/smoke/rescue1.rb +3 -2
  241. data/smoke/rescue2.rb +3 -2
  242. data/smoke/rescue3.rb +19 -0
  243. data/smoke/rescue4.rb +17 -0
  244. data/smoke/respond_to.rb +2 -1
  245. data/smoke/rest-farg.rb +2 -1
  246. data/smoke/rest1.rb +3 -2
  247. data/smoke/rest2.rb +2 -1
  248. data/smoke/rest3.rb +7 -6
  249. data/smoke/rest4.rb +3 -2
  250. data/smoke/rest5.rb +2 -1
  251. data/smoke/rest6.rb +2 -1
  252. data/smoke/retry1.rb +3 -2
  253. data/smoke/return.rb +2 -1
  254. data/smoke/singleton_method.rb +1 -1
  255. data/smoke/step.rb +4 -3
  256. data/smoke/string-split.rb +2 -1
  257. data/smoke/struct-keyword_init.rb +20 -0
  258. data/smoke/struct.rb +1 -1
  259. data/smoke/struct2.rb +5 -4
  260. data/smoke/struct3.rb +2 -2
  261. data/smoke/struct4.rb +7 -0
  262. data/smoke/struct5.rb +16 -0
  263. data/smoke/struct6.rb +15 -0
  264. data/smoke/struct7.rb +17 -0
  265. data/smoke/stub-keyword.rb +10 -0
  266. data/smoke/super1.rb +5 -4
  267. data/smoke/super2.rb +1 -1
  268. data/smoke/super3.rb +3 -3
  269. data/smoke/super4.rb +43 -0
  270. data/smoke/super5.rb +36 -0
  271. data/smoke/svar1.rb +2 -1
  272. data/smoke/symbol-proc-attr.rb +22 -0
  273. data/smoke/symbol-proc-attr2.rb +15 -0
  274. data/smoke/symbol-proc-bot.rb +13 -0
  275. data/smoke/symbol-proc.rb +4 -3
  276. data/smoke/tap1.rb +3 -2
  277. data/smoke/toplevel.rb +2 -1
  278. data/smoke/two-map.rb +3 -2
  279. data/smoke/type_var.rb +2 -1
  280. data/smoke/typed_method.rb +2 -1
  281. data/smoke/uninitialize-var.rb +2 -1
  282. data/smoke/union-recv.rb +2 -2
  283. data/smoke/user-demo.rb +3 -3
  284. data/smoke/wrong-extend.rb +2 -2
  285. data/smoke/wrong-include.rb +2 -2
  286. data/smoke/wrong-include2.rb +17 -0
  287. data/typeprof.gemspec +1 -1
  288. metadata +61 -6
  289. data/tools/stackprof-wrapper.rb +0 -10
@@ -8,5 +8,6 @@ foo([1, 2, 3])
8
8
  __END__
9
9
  # Classes
10
10
  class Object
11
- def foo : ([Integer, Integer, Integer]) -> (Array[Integer | String])
11
+ private
12
+ def foo: ([Integer, Integer, Integer]) -> (Array[Integer | String])
12
13
  end
@@ -7,5 +7,6 @@ foo
7
7
  __END__
8
8
  # Classes
9
9
  class Object
10
- def foo : -> (Array[Integer | String])
10
+ private
11
+ def foo: -> (Array[Integer | String])
11
12
  end
@@ -18,9 +18,10 @@ quux(a[n])
18
18
  __END__
19
19
  # Classes
20
20
  class Object
21
- def foo : ([Integer, String]) -> Integer
22
- def bar : (Integer) -> nil
23
- def baz : (String) -> nil
24
- def qux : (nil) -> nil
25
- def quux : (Integer | String) -> nil
21
+ private
22
+ def foo: ([Integer, String]) -> Integer
23
+ def bar: (Integer) -> nil
24
+ def baz: (String) -> nil
25
+ def qux: (nil) -> nil
26
+ def quux: (Integer | String) -> nil
26
27
  end
@@ -10,5 +10,6 @@ foo([:a, :b, :c])
10
10
  __END__
11
11
  # Classes
12
12
  class Object
13
- def foo : ([:a, :b, :c]) -> :a
13
+ private
14
+ def foo: ([:a, :b, :c]) -> :a
14
15
  end
@@ -9,5 +9,6 @@ array("foo")
9
9
  __END__
10
10
  # Classes
11
11
  class Object
12
- def array : (Array[Integer] | Hash[Integer, Integer] | String) -> (Array[Hash[Integer, Integer] | Integer | String])
12
+ private
13
+ def array: (Array[Integer] | Hash[Integer, Integer] | String) -> (Array[Hash[Integer, Integer] | Integer | String])
13
14
  end
@@ -18,7 +18,8 @@ foo
18
18
  __END__
19
19
  # Classes
20
20
  class Object
21
- def bar : ([Integer]) -> nil
22
- def test_yield : { -> nil } -> nil
23
- def foo : -> [Integer]
21
+ private
22
+ def bar: ([Integer]) -> nil
23
+ def test_yield: { -> nil } -> nil
24
+ def foo: -> [Integer]
24
25
  end
@@ -23,8 +23,9 @@ end
23
23
  __END__
24
24
  # Classes
25
25
  class Object
26
- def tuple_set : -> [:a, :b, :z]
27
- def tuple_get : -> :c
28
- def seq_set : -> (Array[:a | :b | :c | :z])
29
- def seq_get : -> (:a | :b | :c)
26
+ private
27
+ def tuple_set: -> [:a, :b, :z]
28
+ def tuple_get: -> :c
29
+ def seq_set: -> (Array[:a | :b | :c | :z])
30
+ def seq_get: -> (:a | :b | :c)
30
31
  end
@@ -9,5 +9,6 @@ f(:a, :b, :c)
9
9
  __END__
10
10
  # Classes
11
11
  class Object
12
- def f : (:a, :b, :c) -> :c
12
+ private
13
+ def f: (:a, :b, :c) -> :c
13
14
  end
@@ -0,0 +1,16 @@
1
+ class Foo
2
+ def []=(*args)
3
+ ary = []
4
+ val = args[-1]
5
+ ary[*args[0..-2]] = val # TODO: there is room to improve array_aset
6
+ ary # This should be Array[String]
7
+ end
8
+ end
9
+
10
+ Foo.new[1] = "str"
11
+
12
+ __END__
13
+ # Classes
14
+ class Foo
15
+ def []=: (*Integer | String) -> Array[bot]
16
+ end
@@ -21,7 +21,8 @@ log(a)
21
21
  __END__
22
22
  # Classes
23
23
  class Object
24
- def foo : -> [[String]]
25
- def bar : ([[Integer]]) -> [[String]]
26
- def log : ([[Integer]]) -> nil
24
+ private
25
+ def foo: -> [[String]]
26
+ def bar: ([[Integer]]) -> [[String]]
27
+ def log: ([[Integer]]) -> nil
27
28
  end
@@ -18,8 +18,8 @@ Foo.new.bar
18
18
  __END__
19
19
  # Classes
20
20
  class Foo
21
- @ary : [Integer, String?, :sym]
22
- def initialize : -> [Integer, String, :sym]
23
- def foo : -> String?
24
- def bar : -> nil
21
+ @ary: [Integer, String?, :sym]
22
+ def initialize: -> [Integer, String, :sym]
23
+ def foo: -> String?
24
+ def bar: -> nil
25
25
  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
@@ -9,5 +9,6 @@ foo
9
9
  __END__
10
10
  # Classes
11
11
  class Object
12
- def foo : -> [untyped]
12
+ private
13
+ def foo: -> [untyped]
13
14
  end
@@ -10,6 +10,7 @@ foo(1, "str")
10
10
  __END__
11
11
  # Classes
12
12
  class Object
13
- ARY : Array[bot]
14
- def foo : (Integer, String) -> Array[bot]
13
+ ARY: Array[bot]
14
+ private
15
+ def foo: (Integer, String) -> Array[bot]
15
16
  end
@@ -9,5 +9,6 @@ foo
9
9
  __END__
10
10
  # Classes
11
11
  class Object
12
- def foo : -> (Array[Integer | String])
12
+ private
13
+ def foo: -> (Array[Integer | String])
13
14
  end
@@ -9,5 +9,5 @@ end
9
9
  __END__
10
10
  # Classes
11
11
  class Foo
12
- def self.foo : (Array[bot]) -> Array[bot]
12
+ def self.foo: (Array[bot]) -> Array[bot]
13
13
  end
@@ -8,5 +8,6 @@ foo([:a])
8
8
  __END__
9
9
  # Classes
10
10
  class Object
11
- def foo : (Array[:a | :b | :c]) -> nil
11
+ private
12
+ def foo: (Array[:a | :b | :c]) -> nil
12
13
  end
@@ -0,0 +1,26 @@
1
+ module Foo
2
+ attr_accessor :foo
3
+ module_function :foo=, :foo
4
+ end
5
+
6
+ class Bar
7
+ include Foo
8
+ end
9
+
10
+ Foo.foo = 42
11
+ Bar.new.foo = "str"
12
+
13
+ # XXX: the output may be improved
14
+
15
+ __END__
16
+ # Classes
17
+ module Foo
18
+ self.@foo: Integer
19
+ attr_accessor foo: untyped
20
+ attr_accessor self.foo: Integer
21
+ end
22
+
23
+ class Bar
24
+ include Foo
25
+ @foo: String
26
+ 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
+ attr_reader a: :aaa
24
+ attr_writer b: :bbb
25
+ attr_accessor c: :ccc
26
+ def initialize: (:aaa) -> :aaa
27
+ def get_b: -> :bbb
28
28
  end
@@ -0,0 +1,14 @@
1
+ autoload(:Pathname, "pathname")
2
+
3
+ def foo
4
+ Pathname.new("foo")
5
+ end
6
+
7
+ foo
8
+
9
+ __END__
10
+ # Classes
11
+ class Object
12
+ private
13
+ def foo: -> Pathname
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) -> nil
31
+ def f2: { (:a, :b, :c) -> nil } -> nil
32
+ def log2: (:a) -> nil
33
+ def f3: { ([:a, :b, :c]) -> nil } -> nil
34
+ def log3: ([:a, :b, :c]) -> nil
35
+ def f4: { ([:a, :b, :c]) -> nil } -> nil
36
+ def log4: (:a) -> nil
36
37
  end
@@ -48,15 +48,16 @@ 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
+ private
53
+ def f1: { (*String) -> nil } -> (^(String, ?:opt | String, String) -> nil)
54
+ def log1: (String, :opt | String, String) -> nil
55
+ def f2: { (:a, *String) -> nil } -> (^(:a, ?:opt | String, String) -> nil)
56
+ def log2: (:a, :opt | String, String) -> nil
57
+ def f3: { (:a, :b, *String) -> nil } -> (^(:a, ?:b | :opt, :b | String) -> nil)
58
+ def log3: (:a, :b | :opt, :b | String) -> nil
59
+ def f4: { (:a, :b, :c, *String) -> nil } -> (^(:a, ?:b | :opt, :b | :c) -> nil)
60
+ def log4: (:a, :b | :opt, :b | :c) -> nil
61
+ def f5: { (:a, :b, :c, :d, *String) -> nil } -> (^(:a, ?:b | :opt, :b | :c) -> nil)
62
+ def log5: (:a, :b | :opt, :b | :c) -> nil
62
63
  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, :opt, nil) -> nil
52
+ def f2: { (:a) -> nil } -> ^(:a, ?:opt, nil) -> nil
53
+ def log2: (:a, :opt, nil) -> nil
54
+ def f3: { (:a, :b) -> nil } -> ^(:a, ?:opt, :b) -> nil
55
+ def log3: (:a, :opt, :b) -> nil
56
+ def f4: { (:a, :b, :c) -> nil } -> (^(:a, ?:b | :opt, :c) -> nil)
57
+ def log4: (:a, :b | :opt, :c) -> nil
58
+ def f5: { (:a, :b, :c, :d) -> nil } -> (^(:a, ?:b | :opt, :c) -> nil)
59
+ def log5: (:a, :b | :opt, :c) -> nil
59
60
  end
@@ -48,15 +48,16 @@ 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
+ private
53
+ def f1: { (*String) -> nil } -> ^(String, *String, String) -> nil
54
+ def log1: (String, Array[String], String) -> nil
55
+ def f2: { (:a, *String) -> nil } -> ^(:a, *String, String) -> nil
56
+ def log2: (:a, Array[String], String) -> nil
57
+ def f3: { (:a, :b, *String) -> nil } -> (^(:a, *:b | String, :b | String) -> nil)
58
+ def log3: (:a, Array[:b | String], :b | String) -> nil
59
+ def f4: { (:a, :b, :c, *String) -> nil } -> (^(:a, *:b | :c | String, :c | String) -> nil)
60
+ def log4: (:a, Array[:b | :c | String], :c | String) -> nil
61
+ def f5: { (:a, :b, :c, :d, *String) -> nil } -> (^(:a, *:b | :c | :d | String, :d | String) -> nil)
62
+ def log5: (:a, Array[:b | :c | :d | String], :d | String) -> nil
62
63
  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, Array[bot], nil) -> nil
52
+ def f2: { (:a) -> nil } -> ^(:a, *bot, nil) -> nil
53
+ def log2: (:a, Array[bot], nil) -> nil
54
+ def f3: { (:a, :b) -> nil } -> ^(:a, *bot, :b) -> nil
55
+ def log3: (:a, Array[bot], :b) -> nil
56
+ def f4: { (:a, :b, :c) -> nil } -> ^(:a, *:b, :c) -> nil
57
+ def log4: (:a, [:b], :c) -> nil
58
+ def f5: { (:a, :b, :c, :d) -> nil } -> (^(:a, *:b | :c, :d) -> nil)
59
+ def log5: (:a, [:b, :c], :d) -> nil
59
60
  end
@@ -57,17 +57,18 @@ 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
+ private
62
+ def f1: { (*String) -> nil } -> (^(String, ?:opt | String, *String, String) -> nil)
63
+ def log1: (String, :opt | String, Array[String], String) -> nil
64
+ def f2: { (:a, *String) -> nil } -> (^(:a, ?:opt | String, *String, String) -> nil)
65
+ def log2: (:a, :opt | String, Array[String], String) -> nil
66
+ def f3: { (:a, :b, *String) -> nil } -> (^(:a, ?:b | :opt, *String, :b | String) -> nil)
67
+ def log3: (:a, :b | :opt, Array[String], :b | String) -> nil
68
+ def f4: { (:a, :b, :c, *String) -> nil } -> (^(:a, ?:b | :opt, *:c | String, :c | String) -> nil)
69
+ def log4: (:a, :b | :opt, Array[:c | String], :c | String) -> nil
70
+ def f5: { (:a, :b, :c, :d, *String) -> nil } -> (^(:a, ?:b | :opt, *:c | :d | String, :d | String) -> nil)
71
+ def log5: (:a, :b | :opt, Array[:c | :d | String], :d | String) -> nil
72
+ def f6: { (:a, :b, :c, :d, :e, *String) -> nil } -> (^(:a, ?:b | :opt, *:c | :d | :e | String, :e | String) -> nil)
73
+ def log6: (:a, :b | :opt, Array[:c | :d | :e | String], :e | String) -> nil
73
74
  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, :opt, Array[bot], nil) -> nil
61
+ def f2: { (:a) -> nil } -> ^(:a, ?:opt, *bot, nil) -> nil
62
+ def log2: (:a, :opt, Array[bot], nil) -> nil
63
+ def f3: { (:a, :b) -> nil } -> ^(:a, ?:opt, *bot, :b) -> nil
64
+ def log3: (:a, :opt, Array[bot], :b) -> nil
65
+ def f4: { (:a, :b, :c) -> nil } -> (^(:a, ?:b | :opt, *bot, :c) -> nil)
66
+ def log4: (:a, :b | :opt, Array[bot], :c) -> nil
67
+ def f5: { (:a, :b, :c, :d) -> nil } -> (^(:a, ?:b | :opt, *:c, :d) -> nil)
68
+ def log5: (:a, :b | :opt, [:c], :d) -> nil
69
+ def f6: { (:a, :b, :c, :d, :e) -> nil } -> (^(:a, ?:b | :opt, *:c | :d, :e) -> nil)
70
+ def log6: (:a, :b | :opt, [:c, :d], :e) -> nil
70
71
  end