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
data/smoke/array-map3.rb DELETED
@@ -1,23 +0,0 @@
1
- def map_test(a)
2
- a.map {|n| n.to_s }
3
- end
4
- def map_bang_test(a)
5
- a.map! {|n| n.to_s }
6
- a
7
- end
8
- def map_bang_test_known_bug(a)
9
- a.map! {|n| n.to_s }
10
- end
11
-
12
- map_test([1, 2, 3])
13
- map_bang_test([1, 2, 3])
14
- map_bang_test_known_bug([1, 2, 3])
15
-
16
- __END__
17
- # Classes
18
- class Object
19
- private
20
- def map_test: ([Integer, Integer, Integer] a) -> Array[String]
21
- def map_bang_test: ([Integer, Integer, Integer] a) -> (Array[Integer | String])
22
- def map_bang_test_known_bug: ([Integer, Integer, Integer] a) -> [Integer, Integer, Integer]
23
- end
data/smoke/array-mul.rb DELETED
@@ -1,18 +0,0 @@
1
- def foo(a)
2
- a * 3
3
- end
4
-
5
- def bar(a)
6
- a * "join"
7
- end
8
-
9
- foo([1, 2, 3])
10
- bar([1, 2, 3])
11
-
12
- __END__
13
- # Classes
14
- class Object
15
- private
16
- def foo: ([Integer, Integer, Integer] a) -> Array[Integer]
17
- def bar: ([Integer, Integer, Integer] a) -> String
18
- end
data/smoke/array-plus1.rb DELETED
@@ -1,11 +0,0 @@
1
- def log(x)
2
- end
3
-
4
- log([1] + ["str"] + [2] + [:sym])
5
-
6
- __END__
7
- # Classes
8
- class Object
9
- private
10
- def log: (Array[:sym | Integer | String] x) -> nil
11
- end
data/smoke/array-plus2.rb DELETED
@@ -1,16 +0,0 @@
1
- class Foo
2
- def foo
3
- @var = [1]
4
- @var = @var + [2]
5
- end
6
- end
7
-
8
- Foo.new.foo
9
-
10
- __END__
11
- # Classes
12
- class Foo
13
- @var: Array[Integer]
14
-
15
- def foo: -> Array[Integer]
16
- end
data/smoke/array-pop.rb DELETED
@@ -1,12 +0,0 @@
1
- def foo
2
- [1, "str", :sym].pop()
3
- end
4
-
5
- foo
6
-
7
- __END__
8
- # Classes
9
- class Object
10
- private
11
- def foo: -> (:sym | Integer | String)
12
- end
@@ -1,71 +0,0 @@
1
- def f1(*ary)
2
- ary[1..3]
3
- end
4
-
5
- def f2(*ary)
6
- ary[1...3]
7
- end
8
-
9
- def f3(*ary)
10
- ary[1..-3]
11
- end
12
-
13
- def f4(*ary)
14
- ary[1...-3]
15
- end
16
-
17
- def f5(*ary)
18
- ary[-4..3]
19
- end
20
-
21
- def f6(*ary)
22
- ary[-4...3]
23
- end
24
-
25
- def f7(*ary)
26
- ary[-4..-3]
27
- end
28
-
29
- def f8(*ary)
30
- ary[-4...-3]
31
- end
32
-
33
- def f9(*ary)
34
- ary[...3]
35
- end
36
-
37
- def f10(*ary)
38
- ary[3..]
39
- end
40
-
41
- def dispatch(*ary)
42
- f1(*ary)
43
- f2(*ary)
44
- f3(*ary)
45
- f4(*ary)
46
- f5(*ary)
47
- f6(*ary)
48
- f7(*ary)
49
- f8(*ary)
50
- f9(*ary)
51
- f10(*ary)
52
- end
53
-
54
- dispatch(:a, :b, :c, :d, :e)
55
-
56
- __END__
57
- # Classes
58
- class Object
59
- private
60
- def f1: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
61
- def f2: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
62
- def f3: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
63
- def f4: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
64
- def f5: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
65
- def f6: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
66
- def f7: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
67
- def f8: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
68
- def f9: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
69
- def f10: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
70
- def dispatch: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
71
- end
@@ -1,13 +0,0 @@
1
- def foo(a)
2
- a.replace(["str"])
3
- a
4
- end
5
-
6
- foo([1, 2, 3])
7
-
8
- __END__
9
- # Classes
10
- class Object
11
- private
12
- def foo: ([Integer, Integer, Integer] a) -> (Array[Integer | String])
13
- end
@@ -1,12 +0,0 @@
1
- def foo
2
- Array[42, "str"]
3
- end
4
-
5
- foo
6
-
7
- __END__
8
- # Classes
9
- class Object
10
- private
11
- def foo: -> (Array[Integer | String])
12
- end
data/smoke/array1.rb DELETED
@@ -1,27 +0,0 @@
1
- def foo(a)
2
- a[0]
3
- end
4
- def bar(n); end
5
- def baz(n); end
6
- def qux(n); end
7
- def quux(n); end
8
-
9
- a = [42, "str"]
10
- foo(a)
11
- bar(a[0])
12
- n = 1
13
- baz(a[n])
14
- qux(a[2])
15
- n = 0+0
16
- quux(a[n])
17
-
18
- __END__
19
- # Classes
20
- class Object
21
- private
22
- def foo: ([Integer, String] a) -> Integer
23
- def bar: (Integer n) -> nil
24
- def baz: (String n) -> nil
25
- def qux: (nil n) -> nil
26
- def quux: (Integer | String n) -> nil
27
- end
data/smoke/array10.rb DELETED
@@ -1,15 +0,0 @@
1
- def foo(a)
2
- 1.times do
3
- x, y = a
4
- return x
5
- end
6
- end
7
-
8
- foo([:a, :b, :c])
9
-
10
- __END__
11
- # Classes
12
- class Object
13
- private
14
- def foo: ([:a, :b, :c] a) -> :a
15
- end
data/smoke/array11.rb DELETED
@@ -1,14 +0,0 @@
1
- def array(obj)
2
- Array(obj)
3
- end
4
-
5
- array({1=>1})
6
- array([1]+[2])
7
- array("foo")
8
-
9
- __END__
10
- # Classes
11
- class Object
12
- private
13
- def array: (Array[Integer] | Hash[Integer, Integer] | String obj) -> (Array[Hash[Integer, Integer] | Integer | String])
14
- end
data/smoke/array12.rb DELETED
@@ -1,25 +0,0 @@
1
- def bar(x)
2
- end
3
-
4
- def test_yield
5
- yield
6
- end
7
-
8
- def foo
9
- a = [1]
10
- test_yield do
11
- bar(a)
12
- end
13
- a
14
- end
15
-
16
- foo
17
-
18
- __END__
19
- # Classes
20
- class Object
21
- private
22
- def bar: ([Integer] x) -> nil
23
- def test_yield: { -> nil } -> nil
24
- def foo: -> [Integer]
25
- end
data/smoke/array13.rb DELETED
@@ -1,31 +0,0 @@
1
- def tuple_set
2
- ary = [:a, :b, :c]
3
- ary[-1] = :z
4
- ary
5
- end
6
-
7
- def tuple_get
8
- ary = [:a, :b, :c]
9
- ary[-1]
10
- end
11
-
12
- def seq_set
13
- ary = [:a, :b, :c] + []
14
- ary[-1] = :z
15
- ary
16
- end
17
-
18
- def seq_get
19
- ary = [:a, :b, :c] + []
20
- ary[-1]
21
- end
22
-
23
- __END__
24
- # Classes
25
- class Object
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)
31
- end
data/smoke/array14.rb DELETED
@@ -1,14 +0,0 @@
1
- def f(a, b, c)
2
- ary = [nil]
3
- foo, bar, ary[0] = a, b, c
4
- ary[0]
5
- end
6
-
7
- f(:a, :b, :c)
8
-
9
- __END__
10
- # Classes
11
- class Object
12
- private
13
- def f: (:a a, :b b, :c c) -> :c
14
- end
data/smoke/array15.rb DELETED
@@ -1,16 +0,0 @@
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 args) -> Array[untyped]
16
- end
data/smoke/array2.rb DELETED
@@ -1,28 +0,0 @@
1
- def foo
2
- a = [[42]]
3
- a[0][0] = "str"
4
- a
5
- end
6
-
7
- def bar(a)
8
- a[0][0] = "str"
9
- a
10
- end
11
-
12
- def log(a)
13
- end
14
-
15
- foo
16
- a = [[42]]
17
- bar(a)
18
- # limitation: a is kept as [[Integer]]
19
- log(a)
20
-
21
- __END__
22
- # Classes
23
- class Object
24
- private
25
- def foo: -> [[String]]
26
- def bar: ([[Integer]] a) -> [[String]]
27
- def log: ([[Integer]] a) -> nil
28
- end
data/smoke/array3.rb DELETED
@@ -1,26 +0,0 @@
1
- class Foo
2
- def initialize
3
- @ary = [1, "str", :sym]
4
- end
5
-
6
- def foo
7
- @ary[1]
8
- end
9
-
10
- def bar
11
- @ary[1] = nil
12
- end
13
- end
14
-
15
- Foo.new.foo
16
- Foo.new.bar
17
-
18
- __END__
19
- # Classes
20
- class Foo
21
- @ary: [Integer, String?, :sym]
22
-
23
- def initialize: -> void
24
- def foo: -> String?
25
- def bar: -> nil
26
- end
data/smoke/array4.rb DELETED
@@ -1,15 +0,0 @@
1
- def foo
2
- while 1+1
3
- a = [1]
4
- end
5
- a
6
- end
7
-
8
- foo
9
-
10
- __END__
11
- # Classes
12
- class Object
13
- private
14
- def foo: -> [Integer]?
15
- end
data/smoke/array5.rb DELETED
@@ -1,14 +0,0 @@
1
- def foo
2
- a = [[nil]]
3
- a[0] = a
4
- a
5
- end
6
-
7
- foo
8
-
9
- __END__
10
- # Classes
11
- class Object
12
- private
13
- def foo: -> [untyped]
14
- end
data/smoke/array6.rb DELETED
@@ -1,17 +0,0 @@
1
- ARY = []
2
-
3
- def foo(i, v)
4
- ARY[i] = v
5
- ARY
6
- end
7
-
8
- foo(1, "str")
9
-
10
- __END__
11
- # Classes
12
- class Object
13
- ARY: Array[untyped]
14
-
15
- private
16
- def foo: (Integer i, String v) -> Array[untyped]
17
- end
data/smoke/array7.rb DELETED
@@ -1,14 +0,0 @@
1
- def foo
2
- a = [1]
3
- a[1] = "str"
4
- a
5
- end
6
-
7
- foo
8
-
9
- __END__
10
- # Classes
11
- class Object
12
- private
13
- def foo: -> (Array[Integer | String])
14
- end
data/smoke/array8.rb DELETED
@@ -1,13 +0,0 @@
1
- class Foo
2
- def self.foo(a)
3
- a
4
- end
5
-
6
- foo([])
7
- end
8
-
9
- __END__
10
- # Classes
11
- class Foo
12
- def self.foo: (Array[untyped] a) -> Array[untyped]
13
- end
data/smoke/array9.rb DELETED
@@ -1,13 +0,0 @@
1
- def foo(a)
2
- end
3
-
4
- foo([:a, :b, :c])
5
- foo([:a, :b])
6
- foo([:a])
7
-
8
- __END__
9
- # Classes
10
- class Object
11
- private
12
- def foo: (Array[:a | :b | :c] a) -> nil
13
- end
data/smoke/attr-module.rb DELETED
@@ -1,24 +0,0 @@
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
- __END__
14
- # Classes
15
- module Foo
16
- self.@foo: Integer
17
-
18
- attr_accessor foo: String
19
- attr_accessor self.foo: Integer
20
- end
21
-
22
- class Bar
23
- include Foo
24
- end
data/smoke/attr-vis.rb DELETED
@@ -1,43 +0,0 @@
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: -> void
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
data/smoke/attr-vis.rbs DELETED
@@ -1,4 +0,0 @@
1
- class Foo
2
- private
3
- attr_accessor bar: Integer
4
- end
data/smoke/attr.rb DELETED
@@ -1,28 +0,0 @@
1
- class Foo
2
- def initialize(a)
3
- @a = a
4
- end
5
- attr_reader :a
6
-
7
- attr_writer :b
8
- def get_b
9
- @b
10
- end
11
-
12
- attr_accessor :c
13
- end
14
-
15
- foo = Foo.new(:aaa)
16
- foo.b = :bbb
17
- foo.get_b
18
- foo.c = :ccc
19
-
20
- __END__
21
- # Classes
22
- class Foo
23
- def initialize: (:aaa a) -> void
24
- attr_reader a: :aaa
25
- attr_writer b: :bbb
26
- def get_b: -> :bbb
27
- attr_accessor c: :ccc
28
- end
data/smoke/autoload.rb DELETED
@@ -1,14 +0,0 @@
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
data/smoke/backtrace.rb DELETED
@@ -1,33 +0,0 @@
1
- def foo
2
- unknown_method
3
- end
4
-
5
- def bar
6
- foo
7
- end
8
-
9
- def baz
10
- bar
11
- end
12
-
13
- baz
14
-
15
- # smoke/backtrace.rb:2: [error] undefined method: Object#unknown_method
16
- # from smoke/backtrace.rb:6
17
- # from smoke/backtrace.rb:10
18
- # from smoke/backtrace.rb:13
19
- # Object#baz :: () -> any
20
- # Object#bar :: () -> any
21
- # Object#foo :: () -> any
22
-
23
- __END__
24
- # Errors
25
- smoke/backtrace.rb:2: [error] undefined method: Object#unknown_method
26
-
27
- # Classes
28
- class Object
29
- private
30
- def foo: -> untyped
31
- def bar: -> untyped
32
- def baz: -> untyped
33
- end
@@ -1,37 +0,0 @@
1
- def f1
2
- yield :a, :b, :c
3
- end
4
- def log1(x); end
5
- f1 {|x| log1(x) }
6
-
7
- def f2
8
- yield :a, :b, :c
9
- end
10
- def log2(x); end
11
- f2 {|x,| log2(x) }
12
-
13
- def f3
14
- yield [:a, :b, :c]
15
- end
16
- def log3(x); end
17
- f3 {|x| log3(x) }
18
-
19
- def f4
20
- yield [:a, :b, :c]
21
- end
22
- def log4(x); end
23
- f4 {|x,| log4(x) }
24
-
25
- __END__
26
- # Classes
27
- class Object
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
37
- end