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