typeprof 0.15.3 → 0.20.3

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 (366) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/main.yml +1 -1
  3. data/Gemfile.lock +5 -5
  4. data/doc/ide.md +81 -0
  5. data/doc/typeprof-for-ide-log.png +0 -0
  6. data/doc/typeprof-for-ide.png +0 -0
  7. data/exe/typeprof +5 -1
  8. data/lib/typeprof/analyzer.rb +235 -56
  9. data/lib/typeprof/arguments.rb +1 -0
  10. data/lib/typeprof/builtin.rb +23 -23
  11. data/lib/typeprof/cli.rb +23 -5
  12. data/lib/typeprof/code-range.rb +177 -0
  13. data/lib/typeprof/config.rb +41 -20
  14. data/lib/typeprof/container-type.rb +3 -0
  15. data/lib/typeprof/export.rb +191 -15
  16. data/lib/typeprof/import.rb +33 -9
  17. data/lib/typeprof/insns-def.rb +1 -0
  18. data/lib/typeprof/iseq.rb +224 -17
  19. data/lib/typeprof/lsp.rb +884 -0
  20. data/lib/typeprof/method.rb +15 -11
  21. data/lib/typeprof/type.rb +50 -42
  22. data/lib/typeprof/utils.rb +18 -1
  23. data/lib/typeprof/version.rb +1 -1
  24. data/lib/typeprof.rb +3 -5
  25. data/typeprof-lsp +3 -0
  26. data/typeprof.gemspec +2 -2
  27. data/vscode/.gitignore +5 -0
  28. data/vscode/.vscode/launch.json +16 -0
  29. data/vscode/.vscodeignore +7 -0
  30. data/vscode/README.md +22 -0
  31. data/vscode/development.md +31 -0
  32. data/vscode/package-lock.json +3249 -0
  33. data/vscode/package.json +71 -0
  34. data/vscode/sandbox/test.rb +24 -0
  35. data/vscode/src/extension.ts +299 -0
  36. data/vscode/tsconfig.json +15 -0
  37. metadata +21 -334
  38. data/smoke/alias.rb +0 -31
  39. data/smoke/alias2.rb +0 -21
  40. data/smoke/any-cbase.rb +0 -5
  41. data/smoke/any1.rb +0 -16
  42. data/smoke/any2.rb +0 -18
  43. data/smoke/arguments.rb +0 -17
  44. data/smoke/arguments2.rb +0 -56
  45. data/smoke/array-each.rb +0 -15
  46. data/smoke/array-each2.rb +0 -16
  47. data/smoke/array-each3.rb +0 -13
  48. data/smoke/array-ltlt.rb +0 -14
  49. data/smoke/array-ltlt2.rb +0 -17
  50. data/smoke/array-map.rb +0 -12
  51. data/smoke/array-map2.rb +0 -11
  52. data/smoke/array-map3.rb +0 -23
  53. data/smoke/array-mul.rb +0 -18
  54. data/smoke/array-plus1.rb +0 -11
  55. data/smoke/array-plus2.rb +0 -16
  56. data/smoke/array-pop.rb +0 -12
  57. data/smoke/array-range-aref.rb +0 -71
  58. data/smoke/array-replace.rb +0 -13
  59. data/smoke/array-s-aref.rb +0 -12
  60. data/smoke/array1.rb +0 -27
  61. data/smoke/array10.rb +0 -15
  62. data/smoke/array11.rb +0 -14
  63. data/smoke/array12.rb +0 -25
  64. data/smoke/array13.rb +0 -31
  65. data/smoke/array14.rb +0 -14
  66. data/smoke/array15.rb +0 -16
  67. data/smoke/array2.rb +0 -28
  68. data/smoke/array3.rb +0 -26
  69. data/smoke/array4.rb +0 -15
  70. data/smoke/array5.rb +0 -14
  71. data/smoke/array6.rb +0 -17
  72. data/smoke/array7.rb +0 -14
  73. data/smoke/array8.rb +0 -13
  74. data/smoke/array9.rb +0 -13
  75. data/smoke/attr-module.rb +0 -24
  76. data/smoke/attr-vis.rb +0 -43
  77. data/smoke/attr-vis.rbs +0 -4
  78. data/smoke/attr.rb +0 -28
  79. data/smoke/autoload.rb +0 -14
  80. data/smoke/backtrace.rb +0 -33
  81. data/smoke/block-ambiguous.rb +0 -37
  82. data/smoke/block-args1-rest.rb +0 -64
  83. data/smoke/block-args1.rb +0 -60
  84. data/smoke/block-args2-rest.rb +0 -64
  85. data/smoke/block-args2.rb +0 -60
  86. data/smoke/block-args3-rest.rb +0 -75
  87. data/smoke/block-args3.rb +0 -71
  88. data/smoke/block-blockarg.rb +0 -28
  89. data/smoke/block-kwarg.rb +0 -53
  90. data/smoke/block1.rb +0 -23
  91. data/smoke/block10.rb +0 -15
  92. data/smoke/block11.rb +0 -40
  93. data/smoke/block12.rb +0 -23
  94. data/smoke/block13.rb +0 -9
  95. data/smoke/block13.rbs +0 -3
  96. data/smoke/block14.rb +0 -18
  97. data/smoke/block2.rb +0 -15
  98. data/smoke/block3.rb +0 -38
  99. data/smoke/block4.rb +0 -19
  100. data/smoke/block5.rb +0 -21
  101. data/smoke/block6.rb +0 -21
  102. data/smoke/block7.rb +0 -19
  103. data/smoke/block8.rb +0 -28
  104. data/smoke/block9.rb +0 -13
  105. data/smoke/block_given.rb +0 -37
  106. data/smoke/blown.rb +0 -13
  107. data/smoke/break1.rb +0 -19
  108. data/smoke/break2.rb +0 -16
  109. data/smoke/break3.rb +0 -13
  110. data/smoke/break4.rb +0 -17
  111. data/smoke/case.rb +0 -17
  112. data/smoke/case2.rb +0 -18
  113. data/smoke/case3.rb +0 -17
  114. data/smoke/class-hierarchy.rb +0 -54
  115. data/smoke/class-hierarchy2.rb +0 -27
  116. data/smoke/class-new.rb +0 -15
  117. data/smoke/class.rb +0 -7
  118. data/smoke/class_eval.rb +0 -22
  119. data/smoke/class_instance_var.rb +0 -9
  120. data/smoke/class_method.rb +0 -25
  121. data/smoke/class_method2.rb +0 -21
  122. data/smoke/class_method3.rb +0 -29
  123. data/smoke/constant1.rb +0 -46
  124. data/smoke/constant2.rb +0 -36
  125. data/smoke/constant3.rb +0 -10
  126. data/smoke/constant4.rb +0 -12
  127. data/smoke/context-sensitive1.rb +0 -13
  128. data/smoke/cvar.rb +0 -31
  129. data/smoke/cvar2.rb +0 -17
  130. data/smoke/define_method.rb +0 -16
  131. data/smoke/define_method2.rb +0 -18
  132. data/smoke/define_method3.rb +0 -14
  133. data/smoke/define_method3.rbs +0 -3
  134. data/smoke/define_method4.rb +0 -15
  135. data/smoke/define_method4.rbs +0 -3
  136. data/smoke/define_method5.rb +0 -12
  137. data/smoke/define_method6.rb +0 -19
  138. data/smoke/define_method7.rb +0 -18
  139. data/smoke/demo.rb +0 -81
  140. data/smoke/demo1.rb +0 -17
  141. data/smoke/demo10.rb +0 -21
  142. data/smoke/demo11.rb +0 -12
  143. data/smoke/demo2.rb +0 -15
  144. data/smoke/demo3.rb +0 -17
  145. data/smoke/demo4.rb +0 -27
  146. data/smoke/demo5.rb +0 -16
  147. data/smoke/demo6.rb +0 -22
  148. data/smoke/demo7.rb +0 -15
  149. data/smoke/demo8.rb +0 -19
  150. data/smoke/demo9.rb +0 -18
  151. data/smoke/dummy-execution1.rb +0 -15
  152. data/smoke/dummy-execution2.rb +0 -16
  153. data/smoke/dummy_element.rb +0 -14
  154. data/smoke/ensure1.rb +0 -21
  155. data/smoke/enum_for.rb +0 -15
  156. data/smoke/enum_for2.rb +0 -17
  157. data/smoke/enumerator.rb +0 -16
  158. data/smoke/expandarray1.rb +0 -23
  159. data/smoke/expandarray2.rb +0 -24
  160. data/smoke/extended.rb +0 -38
  161. data/smoke/fib.rb +0 -28
  162. data/smoke/flip-flop.rb +0 -28
  163. data/smoke/flow1.rb +0 -17
  164. data/smoke/flow10.rb +0 -17
  165. data/smoke/flow11.rb +0 -17
  166. data/smoke/flow2.rb +0 -15
  167. data/smoke/flow3.rb +0 -15
  168. data/smoke/flow4.rb +0 -5
  169. data/smoke/flow5.rb +0 -20
  170. data/smoke/flow6.rb +0 -20
  171. data/smoke/flow7.rb +0 -21
  172. data/smoke/flow8.rb +0 -14
  173. data/smoke/flow9.rb +0 -12
  174. data/smoke/for.rb +0 -9
  175. data/smoke/freeze.rb +0 -12
  176. data/smoke/function.rb +0 -17
  177. data/smoke/gvar.rb +0 -14
  178. data/smoke/gvar2.rb +0 -15
  179. data/smoke/gvar2.rbs +0 -1
  180. data/smoke/hash-bot.rb +0 -12
  181. data/smoke/hash-fetch.rb +0 -28
  182. data/smoke/hash-merge-bang.rb +0 -12
  183. data/smoke/hash1.rb +0 -20
  184. data/smoke/hash2.rb +0 -13
  185. data/smoke/hash3.rb +0 -14
  186. data/smoke/hash4.rb +0 -11
  187. data/smoke/hash5.rb +0 -14
  188. data/smoke/huge_union.rb +0 -86
  189. data/smoke/identifier_keywords.rb +0 -17
  190. data/smoke/included.rb +0 -38
  191. data/smoke/inheritance.rb +0 -34
  192. data/smoke/inheritance2.rb +0 -35
  193. data/smoke/inherited.rb +0 -26
  194. data/smoke/initialize.rb +0 -28
  195. data/smoke/instance_eval.rb +0 -18
  196. data/smoke/instance_eval2.rb +0 -10
  197. data/smoke/instance_eval3.rb +0 -25
  198. data/smoke/instance_eval4.rb +0 -12
  199. data/smoke/int_times.rb +0 -15
  200. data/smoke/integer.rb +0 -11
  201. data/smoke/ivar.rb +0 -31
  202. data/smoke/ivar2.rb +0 -30
  203. data/smoke/ivar3.rb +0 -17
  204. data/smoke/ivar3.rbs +0 -3
  205. data/smoke/ivar4.rb +0 -21
  206. data/smoke/kernel-class.rb +0 -13
  207. data/smoke/keyword1.rb +0 -12
  208. data/smoke/keyword2.rb +0 -12
  209. data/smoke/keyword3.rb +0 -12
  210. data/smoke/keyword4.rb +0 -12
  211. data/smoke/keyword5.rb +0 -16
  212. data/smoke/kwrest.rb +0 -13
  213. data/smoke/kwrest.rbs +0 -3
  214. data/smoke/kwsplat1.rb +0 -43
  215. data/smoke/kwsplat2.rb +0 -13
  216. data/smoke/lit-complex.rb +0 -10
  217. data/smoke/lit-encoding.rb +0 -10
  218. data/smoke/manual-rbs.rb +0 -29
  219. data/smoke/manual-rbs.rbs +0 -3
  220. data/smoke/manual-rbs2.rb +0 -21
  221. data/smoke/manual-rbs2.rbs +0 -8
  222. data/smoke/manual-rbs3.rb +0 -13
  223. data/smoke/manual-rbs3.rbs +0 -3
  224. data/smoke/masgn1.rb +0 -14
  225. data/smoke/masgn2.rb +0 -18
  226. data/smoke/masgn3.rb +0 -13
  227. data/smoke/method_in_branch.rb +0 -23
  228. data/smoke/method_missing.rb +0 -29
  229. data/smoke/module1.rb +0 -29
  230. data/smoke/module2.rb +0 -28
  231. data/smoke/module3.rb +0 -33
  232. data/smoke/module4.rb +0 -35
  233. data/smoke/module5.rb +0 -17
  234. data/smoke/module6.rb +0 -40
  235. data/smoke/module_function1.rb +0 -29
  236. data/smoke/module_function2.rb +0 -29
  237. data/smoke/multiple-include.rb +0 -15
  238. data/smoke/multiple-superclass.rb +0 -28
  239. data/smoke/next1.rb +0 -21
  240. data/smoke/next2.rb +0 -17
  241. data/smoke/noname.rb +0 -9
  242. data/smoke/object-send1.rb +0 -23
  243. data/smoke/object-send2.rb +0 -10
  244. data/smoke/object-send3.rb +0 -18
  245. data/smoke/once.rb +0 -13
  246. data/smoke/optional1.rb +0 -14
  247. data/smoke/optional2.rb +0 -16
  248. data/smoke/optional3.rb +0 -11
  249. data/smoke/or_raise.rb +0 -18
  250. data/smoke/parameterizedd-self.rb +0 -20
  251. data/smoke/parameterizedd-self2.rb +0 -15
  252. data/smoke/pathname1.rb +0 -14
  253. data/smoke/pathname2.rb +0 -14
  254. data/smoke/pattern-match1.rb +0 -19
  255. data/smoke/pattern-match2.rb +0 -16
  256. data/smoke/prepend1.rb +0 -33
  257. data/smoke/prepend2.rb +0 -10
  258. data/smoke/prepend2.rbs +0 -9
  259. data/smoke/primitive_method.rb +0 -19
  260. data/smoke/printf.rb +0 -20
  261. data/smoke/proc.rb +0 -20
  262. data/smoke/proc2.rb +0 -17
  263. data/smoke/proc3.rb +0 -15
  264. data/smoke/proc4.rb +0 -12
  265. data/smoke/proc5.rb +0 -19
  266. data/smoke/proc6.rb +0 -13
  267. data/smoke/proc7.rb +0 -32
  268. data/smoke/public.rb +0 -38
  269. data/smoke/range.rb +0 -14
  270. data/smoke/rbs-alias.rb +0 -10
  271. data/smoke/rbs-alias.rbs +0 -4
  272. data/smoke/rbs-attr.rb +0 -27
  273. data/smoke/rbs-attr.rbs +0 -5
  274. data/smoke/rbs-attr2.rb +0 -11
  275. data/smoke/rbs-attr2.rbs +0 -3
  276. data/smoke/rbs-extend.rb +0 -10
  277. data/smoke/rbs-extend.rbs +0 -7
  278. data/smoke/rbs-interface.rb +0 -25
  279. data/smoke/rbs-interface.rbs +0 -12
  280. data/smoke/rbs-module.rb +0 -26
  281. data/smoke/rbs-module.rbs +0 -4
  282. data/smoke/rbs-opt-and-rest.rb +0 -10
  283. data/smoke/rbs-opt-and-rest.rbs +0 -3
  284. data/smoke/rbs-proc1.rb +0 -10
  285. data/smoke/rbs-proc1.rbs +0 -3
  286. data/smoke/rbs-proc2.rb +0 -21
  287. data/smoke/rbs-proc2.rbs +0 -3
  288. data/smoke/rbs-proc3.rb +0 -14
  289. data/smoke/rbs-proc3.rbs +0 -4
  290. data/smoke/rbs-record.rb +0 -18
  291. data/smoke/rbs-record.rbs +0 -4
  292. data/smoke/rbs-tyvar.rb +0 -19
  293. data/smoke/rbs-tyvar.rbs +0 -5
  294. data/smoke/rbs-tyvar2.rb +0 -21
  295. data/smoke/rbs-tyvar2.rbs +0 -9
  296. data/smoke/rbs-tyvar3.rb +0 -18
  297. data/smoke/rbs-tyvar3.rbs +0 -5
  298. data/smoke/rbs-tyvar4.rb +0 -37
  299. data/smoke/rbs-tyvar5.rb +0 -13
  300. data/smoke/rbs-tyvar5.rbs +0 -8
  301. data/smoke/rbs-tyvar6.rb +0 -18
  302. data/smoke/rbs-tyvar6.rbs +0 -12
  303. data/smoke/rbs-tyvar7.rb +0 -12
  304. data/smoke/rbs-tyvar7.rbs +0 -7
  305. data/smoke/rbs-vars.rb +0 -35
  306. data/smoke/rbs-vars.rbs +0 -7
  307. data/smoke/redo1.rb +0 -22
  308. data/smoke/redo2.rb +0 -23
  309. data/smoke/req-keyword.rb +0 -13
  310. data/smoke/require1.rb +0 -13
  311. data/smoke/require2.rb +0 -13
  312. data/smoke/rescue1.rb +0 -21
  313. data/smoke/rescue2.rb +0 -23
  314. data/smoke/rescue3.rb +0 -20
  315. data/smoke/rescue4.rb +0 -17
  316. data/smoke/respond_to.rb +0 -23
  317. data/smoke/rest-farg.rb +0 -11
  318. data/smoke/rest1.rb +0 -26
  319. data/smoke/rest2.rb +0 -31
  320. data/smoke/rest3.rb +0 -37
  321. data/smoke/rest4.rb +0 -19
  322. data/smoke/rest5.rb +0 -11
  323. data/smoke/rest6.rb +0 -12
  324. data/smoke/retry1.rb +0 -21
  325. data/smoke/return.rb +0 -14
  326. data/smoke/reveal.rb +0 -13
  327. data/smoke/simple.rb +0 -12
  328. data/smoke/singleton_class.rb +0 -8
  329. data/smoke/singleton_method.rb +0 -12
  330. data/smoke/step.rb +0 -18
  331. data/smoke/string-split.rb +0 -12
  332. data/smoke/struct-keyword_init.rb +0 -10
  333. data/smoke/struct.rb +0 -13
  334. data/smoke/struct2.rb +0 -25
  335. data/smoke/struct3.rb +0 -14
  336. data/smoke/struct4.rb +0 -7
  337. data/smoke/struct5.rb +0 -16
  338. data/smoke/struct6.rb +0 -15
  339. data/smoke/struct7.rb +0 -17
  340. data/smoke/stub-keyword.rb +0 -10
  341. data/smoke/super1.rb +0 -69
  342. data/smoke/super2.rb +0 -16
  343. data/smoke/super3.rb +0 -20
  344. data/smoke/super4.rb +0 -45
  345. data/smoke/super5.rb +0 -38
  346. data/smoke/svar1.rb +0 -13
  347. data/smoke/symbol-proc-attr.rb +0 -22
  348. data/smoke/symbol-proc-attr2.rb +0 -15
  349. data/smoke/symbol-proc-bot.rb +0 -13
  350. data/smoke/symbol-proc.rb +0 -25
  351. data/smoke/tap1.rb +0 -18
  352. data/smoke/toplevel.rb +0 -13
  353. data/smoke/two-map.rb +0 -18
  354. data/smoke/type_var.rb +0 -11
  355. data/smoke/typed_method.rb +0 -16
  356. data/smoke/uninitialize-var.rb +0 -13
  357. data/smoke/union-recv.rb +0 -35
  358. data/smoke/user-demo.rb +0 -15
  359. data/smoke/wrong-extend.rb +0 -27
  360. data/smoke/wrong-include.rb +0 -27
  361. data/smoke/wrong-include2.rb +0 -17
  362. data/smoke/wrong-rbs.rb +0 -15
  363. data/smoke/wrong-rbs.rbs +0 -7
  364. data/testbed/ao.rb +0 -297
  365. data/testbed/diff-lcs-entrypoint.rb +0 -4
  366. data/testbed/goodcheck-Gemfile.lock +0 -51
@@ -1,64 +0,0 @@
1
- StringArray = ["str"] + ["str"]
2
-
3
- def f1(&blk)
4
- yield *StringArray
5
- blk
6
- end
7
- def log1(a, o, c); end
8
- f1 do |a, o=:opt, c|
9
- log1(a, o, c)
10
- end
11
-
12
- def f2(&blk)
13
- yield :a, *StringArray
14
- blk
15
- end
16
- def log2(a, o, c); end
17
- f2 do |a, o=:opt, c|
18
- log2(a, o, c)
19
- end
20
-
21
- def f3(&blk)
22
- yield :a, :b, *StringArray
23
- blk
24
- end
25
- def log3(a, o, c); end
26
- f3 do |a, o=:opt, c|
27
- log3(a, o, c)
28
- end
29
-
30
- def f4(&blk)
31
- yield :a, :b, :c, *StringArray
32
- blk
33
- end
34
- def log4(a, o, c); end
35
- f4 do |a, o=:opt, c|
36
- log4(a, o, c)
37
- end
38
-
39
- def f5(&blk)
40
- yield :a, :b, :c, :d, *StringArray
41
- blk
42
- end
43
- def log5(a, o, c); end
44
- f5 do |a, o=:opt, c|
45
- log5(a, o, c)
46
- end
47
-
48
- __END__
49
- # Classes
50
- class Object
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
64
- end
data/smoke/block-args1.rb DELETED
@@ -1,60 +0,0 @@
1
- def f1(&blk)
2
- yield
3
- blk
4
- end
5
- def log1(a, o, c); end
6
- f1 do |a, o=:opt, c|
7
- log1(a, o, c)
8
- end
9
-
10
- def f2(&blk)
11
- yield :a
12
- blk
13
- end
14
- def log2(a, o, c); end
15
- f2 do |a, o=:opt, c|
16
- log2(a, o, c)
17
- end
18
-
19
- def f3(&blk)
20
- yield :a, :b
21
- blk
22
- end
23
- def log3(a, o, c); end
24
- f3 do |a, o=:opt, c|
25
- log3(a, o, c)
26
- end
27
-
28
- def f4(&blk)
29
- yield :a, :b, :c
30
- blk
31
- end
32
- def log4(a, o, c); end
33
- f4 do |a, o=:opt, c|
34
- log4(a, o, c)
35
- end
36
-
37
- def f5(&blk)
38
- yield :a, :b, :c, :d
39
- blk
40
- end
41
- def log5(a, o, c); end
42
- f5 do |a, o=:opt, c|
43
- log5(a, o, c)
44
- end
45
-
46
- __END__
47
- # Classes
48
- class Object
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
60
- end
@@ -1,64 +0,0 @@
1
- StringArray = ["str"] + ["str"]
2
-
3
- def f1(&blk)
4
- yield *StringArray
5
- blk
6
- end
7
- def log1(a, r, c); end
8
- f1 do |a, *r, c|
9
- log1(a, r, c)
10
- end
11
-
12
- def f2(&blk)
13
- yield :a, *StringArray
14
- blk
15
- end
16
- def log2(a, r, c); end
17
- f2 do |a, *r, c|
18
- log2(a, r, c)
19
- end
20
-
21
- def f3(&blk)
22
- yield :a, :b, *StringArray
23
- blk
24
- end
25
- def log3(a, r, c); end
26
- f3 do |a, *r, c|
27
- log3(a, r, c)
28
- end
29
-
30
- def f4(&blk)
31
- yield :a, :b, :c, *StringArray
32
- blk
33
- end
34
- def log4(a, r, c); end
35
- f4 do |a, *r, c|
36
- log4(a, r, c)
37
- end
38
-
39
- def f5(&blk)
40
- yield :a, :b, :c, :d, *StringArray
41
- blk
42
- end
43
- def log5(a, r, c); end
44
- f5 do |a, *r, c|
45
- log5(a, r, c)
46
- end
47
-
48
- __END__
49
- # Classes
50
- class Object
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
64
- end
data/smoke/block-args2.rb DELETED
@@ -1,60 +0,0 @@
1
- def f1(&blk)
2
- yield
3
- blk
4
- end
5
- def log1(a, r, c); end
6
- f1 do |a, *r, c|
7
- log1(a, r, c)
8
- end
9
-
10
- def f2(&blk)
11
- yield :a
12
- blk
13
- end
14
- def log2(a, r, c); end
15
- f2 do |a, *r, c|
16
- log2(a, r, c)
17
- end
18
-
19
- def f3(&blk)
20
- yield :a, :b
21
- blk
22
- end
23
- def log3(a, r, c); end
24
- f3 do |a, *r, c|
25
- log3(a, r, c)
26
- end
27
-
28
- def f4(&blk)
29
- yield :a, :b, :c
30
- blk
31
- end
32
- def log4(a, r, c); end
33
- f4 do |a, *r, c|
34
- log4(a, r, c)
35
- end
36
-
37
- def f5(&blk)
38
- yield :a, :b, :c, :d
39
- blk
40
- end
41
- def log5(a, r, c); end
42
- f5 do |a, *r, c|
43
- log5(a, r, c)
44
- end
45
-
46
- __END__
47
- # Classes
48
- class Object
49
- private
50
- def f1: { -> nil } -> ^(nil, *bot, nil) -> nil
51
- def log1: (nil a, Array[untyped] r, nil c) -> nil
52
- def f2: { (:a) -> nil } -> ^(:a, *bot, nil) -> nil
53
- def log2: (:a a, Array[untyped] r, nil c) -> nil
54
- def f3: { (:a, :b) -> nil } -> ^(:a, *bot, :b) -> nil
55
- def log3: (:a a, Array[untyped] 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
60
- end
@@ -1,75 +0,0 @@
1
- StringArray = ["str"] + ["str"]
2
-
3
- def f1(&blk)
4
- yield *StringArray
5
- blk
6
- end
7
- def log1(a, o, r, c); end
8
- f1 do |a, o=:opt, *r, c|
9
- log1(a, o, r, c)
10
- end
11
-
12
- def f2(&blk)
13
- yield :a, *StringArray
14
- blk
15
- end
16
- def log2(a, o, r, c); end
17
- f2 do |a, o=:opt, *r, c|
18
- log2(a, o, r, c)
19
- end
20
-
21
- def f3(&blk)
22
- yield :a, :b, *StringArray
23
- blk
24
- end
25
- def log3(a, o, r, c); end
26
- f3 do |a, o=:opt, *r, c|
27
- log3(a, o, r, c)
28
- end
29
-
30
- def f4(&blk)
31
- yield :a, :b, :c, *StringArray
32
- blk
33
- end
34
- def log4(a, o, r, c); end
35
- f4 do |a, o=:opt, *r, c|
36
- log4(a, o, r, c)
37
- end
38
-
39
- def f5(&blk)
40
- yield :a, :b, :c, :d, *StringArray
41
- blk
42
- end
43
- def log5(a, o, r, c); end
44
- f5 do |a, o=:opt, *r, c|
45
- log5(a, o, r, c)
46
- end
47
-
48
- def f6(&blk)
49
- yield :a, :b, :c, :d, :e, *StringArray
50
- blk
51
- end
52
- def log6(a, o, r, c); end
53
- f6 do |a, o=:opt, *r, c|
54
- log6(a, o, r, c)
55
- end
56
-
57
- __END__
58
- # Classes
59
- class Object
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
75
- end
data/smoke/block-args3.rb DELETED
@@ -1,71 +0,0 @@
1
- def f1(&blk)
2
- yield
3
- blk
4
- end
5
- def log1(a, o, r, c); end
6
- f1 do |a, o=:opt, *r, c|
7
- log1(a, o, r, c)
8
- end
9
-
10
- def f2(&blk)
11
- yield :a
12
- blk
13
- end
14
- def log2(a, o, r, c); end
15
- f2 do |a, o=:opt, *r, c|
16
- log2(a, o, r, c)
17
- end
18
-
19
- def f3(&blk)
20
- yield :a, :b
21
- blk
22
- end
23
- def log3(a, o, r, c); end
24
- f3 do |a, o=:opt, *r, c|
25
- log3(a, o, r, c)
26
- end
27
-
28
- def f4(&blk)
29
- yield :a, :b, :c
30
- blk
31
- end
32
- def log4(a, o, r, c); end
33
- f4 do |a, o=:opt, *r, c|
34
- log4(a, o, r, c)
35
- end
36
-
37
- def f5(&blk)
38
- yield :a, :b, :c, :d
39
- blk
40
- end
41
- def log5(a, o, r, c); end
42
- f5 do |a, o=:opt, *r, c|
43
- log5(a, o, r, c)
44
- end
45
-
46
- def f6(&blk)
47
- yield :a, :b, :c, :d, :e
48
- blk
49
- end
50
- def log6(a, o, r, c); end
51
- f6 do |a, o=:opt, *r, c|
52
- log6(a, o, r, c)
53
- end
54
-
55
- __END__
56
- # Classes
57
- class Object
58
- private
59
- def f1: { -> nil } -> ^(nil, ?:opt, *bot, nil) -> nil
60
- def log1: (nil a, :opt o, Array[untyped] r, nil c) -> nil
61
- def f2: { (:a) -> nil } -> ^(:a, ?:opt, *bot, nil) -> nil
62
- def log2: (:a a, :opt o, Array[untyped] r, nil c) -> nil
63
- def f3: { (:a, :b) -> nil } -> ^(:a, ?:opt, *bot, :b) -> nil
64
- def log3: (:a a, :opt o, Array[untyped] 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[untyped] 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
71
- end
@@ -1,28 +0,0 @@
1
- def log1(x); end
2
- def log2(x); end
3
- def log3(x); end
4
-
5
- def f(&blk)
6
- log3(
7
- blk.call do |x|
8
- log1(x)
9
- :b
10
- end
11
- )
12
- :d
13
- end
14
-
15
- f do |&blk|
16
- log2(blk.call(:a))
17
- :c
18
- end
19
-
20
- __END__
21
- # Classes
22
- class Object
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
28
- end
data/smoke/block-kwarg.rb DELETED
@@ -1,53 +0,0 @@
1
- def f1
2
- yield k: 1
3
- end
4
- def log1(n); end
5
- f1 {|k:| log1(k) }
6
-
7
- def f2
8
- yield k: 1
9
- end
10
- def log2(n); end
11
- f2 {|k: :opt| log2(k) }
12
-
13
- def f3
14
- yield k: 1
15
- end
16
- def log3(n); end
17
- f3 {|k: "str"| log3(k) }
18
-
19
- def f4
20
- yield k: 1
21
- end
22
- def log4(kwrest); end
23
- f4 {|**kwrest| log4(kwrest) }
24
-
25
- def f5
26
- yield k: 1
27
- end
28
- f5 {|| }
29
-
30
- def f6
31
- yield
32
- end
33
- f6 {|k:| }
34
-
35
- __END__
36
- # Errors
37
- smoke/block-kwarg.rb:26: [error] unknown keyword: k
38
- smoke/block-kwarg.rb:31: [error] no argument for required keywords
39
-
40
- # Classes
41
- class Object
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
53
- end
data/smoke/block1.rb DELETED
@@ -1,23 +0,0 @@
1
- def foo(x)
2
- yield x
3
- yield 1
4
- end
5
-
6
- foo("str") do |x|
7
- x
8
- end
9
-
10
- foo(:sym) do |x|
11
- if 1+1
12
- x
13
- else
14
- 1
15
- end
16
- end
17
-
18
- __END__
19
- # Classes
20
- class Object
21
- private
22
- def foo: (:sym | String x) { (:sym | Integer | String) -> (:sym | Integer | String) } -> (:sym | Integer | String)
23
- end
data/smoke/block10.rb DELETED
@@ -1,15 +0,0 @@
1
- def foo(ary1, ary2)
2
- ary1.each do |x|
3
- ary2[0] = x
4
- end
5
- ary2
6
- end
7
-
8
- foo([1], ["str"])
9
-
10
- __END__
11
- # Classes
12
- class Object
13
- private
14
- def foo: ([Integer] ary1, [String] ary2) -> ([Integer | String])
15
- end
data/smoke/block11.rb DELETED
@@ -1,40 +0,0 @@
1
- def log1(x)
2
- end
3
- def log2(x)
4
- end
5
-
6
- def foo
7
- x = nil
8
- 1.times do |_|
9
- x = 1
10
- log1(x)
11
- end
12
- x
13
- end
14
-
15
- def test_yield
16
- yield
17
- end
18
-
19
- def bar
20
- x = nil
21
- test_yield do
22
- x = 1
23
- log2(x)
24
- end
25
- x
26
- end
27
-
28
- foo
29
- bar
30
-
31
- __END__
32
- # Classes
33
- class Object
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?
40
- end
data/smoke/block12.rb DELETED
@@ -1,23 +0,0 @@
1
- def foo
2
- 1.times do |_|
3
- return [:foo]
4
- end
5
- end
6
-
7
- def bar
8
- a = [:bar]
9
- 1.times do |_|
10
- return a
11
- end
12
- end
13
-
14
- foo
15
- bar
16
-
17
- __END__
18
- # Classes
19
- class Object
20
- private
21
- def foo: -> [:foo]
22
- def bar: -> [:bar]
23
- end
data/smoke/block13.rb DELETED
@@ -1,9 +0,0 @@
1
- foo do |n|
2
- p n
3
- end
4
-
5
- __END__
6
- # Revealed types
7
- # smoke/block13.rb:2 #=> Integer?
8
-
9
- # Classes
data/smoke/block13.rbs DELETED
@@ -1,3 +0,0 @@
1
- class Object
2
- def foo : { (?Integer) -> String } -> String
3
- end
data/smoke/block14.rb DELETED
@@ -1,18 +0,0 @@
1
- def foo(&blk)
2
- $blk = blk
3
- nil
4
- end
5
-
6
- foo {|n| }
7
-
8
- $blk.call(42)
9
-
10
- __END__
11
- # Global variables
12
- $blk: ^(Integer) -> nil
13
-
14
- # Classes
15
- class Object
16
- private
17
- def foo: { (Integer) -> nil } -> nil
18
- end
data/smoke/block2.rb DELETED
@@ -1,15 +0,0 @@
1
- def foo(x)
2
- yield 42
3
- end
4
-
5
- s = "str"
6
- foo(1) do |x|
7
- s
8
- end
9
-
10
- __END__
11
- # Classes
12
- class Object
13
- private
14
- def foo: (Integer x) { (Integer) -> String } -> String
15
- end
data/smoke/block3.rb DELETED
@@ -1,38 +0,0 @@
1
- class Common
2
- def func(x)
3
- yield 1
4
- end
5
- end
6
-
7
- class Foo
8
- def foo
9
- Common.new.func("str") do |x|
10
- 1
11
- end
12
- end
13
- end
14
-
15
- class Bar
16
- def bar
17
- Common.new.func(:sym) do |x|
18
- :sym2
19
- end
20
- end
21
- end
22
-
23
- Foo.new.foo
24
- Bar.new.bar
25
-
26
- __END__
27
- # Classes
28
- class Common
29
- def func: (:sym | String x) { (Integer) -> (:sym2 | Integer) } -> (:sym2 | Integer)
30
- end
31
-
32
- class Foo
33
- def foo: -> (:sym2 | Integer)
34
- end
35
-
36
- class Bar
37
- def bar: -> (:sym2 | Integer)
38
- end
data/smoke/block4.rb DELETED
@@ -1,19 +0,0 @@
1
- def foo
2
- yield "str"
3
- end
4
-
5
- def bar
6
- yield :sym
7
- end
8
-
9
- blk = -> x { x }
10
- foo(&blk)
11
- bar(&blk)
12
-
13
- __END__
14
- # Classes
15
- class Object
16
- private
17
- def foo: { (:sym | String) -> (:sym | String) } -> (:sym | String)
18
- def bar: { (:sym | String) -> (:sym | String) } -> (:sym | String)
19
- end