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/rescue2.rb DELETED
@@ -1,23 +0,0 @@
1
- def foo(x)
2
- 42
3
- end
4
-
5
- def bar
6
- begin
7
- x = 1
8
- x = "str"
9
- x = :sym
10
- rescue
11
- end
12
- foo(x)
13
- end
14
-
15
- bar
16
-
17
- __END__
18
- # Classes
19
- class Object
20
- private
21
- def foo: ((:sym | Integer | String)? x) -> Integer
22
- def bar: -> Integer
23
- end
data/smoke/rescue3.rb DELETED
@@ -1,20 +0,0 @@
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
data/smoke/rescue4.rb DELETED
@@ -1,17 +0,0 @@
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
data/smoke/respond_to.rb DELETED
@@ -1,23 +0,0 @@
1
- def foo(n)
2
- if n.respond_to?(:times)
3
- n.times {|_| n = :sym }
4
- elsif n.respond_to?(:+)
5
- n + "foo"
6
- else
7
- n & false
8
- end
9
- end
10
-
11
-
12
- foo(1)
13
- foo("str")
14
- foo(true)
15
-
16
- # no error expected
17
-
18
- __END__
19
- # Classes
20
- class Object
21
- private
22
- def foo: (Integer | String | true n) -> (Integer | String | bool)
23
- end
data/smoke/rest-farg.rb DELETED
@@ -1,11 +0,0 @@
1
- def foo
2
- a = ["", ""]
3
- "".start_with?("", *a)
4
- end
5
-
6
- __END__
7
- # Classes
8
- class Object
9
- private
10
- def foo: -> bool
11
- end
data/smoke/rest1.rb DELETED
@@ -1,26 +0,0 @@
1
- def foo(a, *r, z)
2
- r
3
- end
4
-
5
- foo(1, 2, "S", 3)
6
- foo(1, 2, 3)
7
- foo("a", "b", "c")
8
- foo(:a, :z)
9
-
10
- def bar(a, o=1, *r, z)
11
- r
12
- end
13
-
14
- bar("A", "Z")
15
- bar("A", "B", "Z")
16
- bar("A", "B", "C", "Z")
17
- bar("A", "B", "C", "D", "Z")
18
- bar("A", "B", "C", "D", "E", "Z")
19
-
20
- __END__
21
- # Classes
22
- class Object
23
- private
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
- end
data/smoke/rest2.rb DELETED
@@ -1,31 +0,0 @@
1
- def foo(a, b, c)
2
- [a, b, c]
3
- end
4
-
5
- a = [1, "S", :s]
6
- foo(*a)
7
-
8
- #def bar(a, b, c)
9
- # [a, b, d]
10
- #end
11
- #def baz(a, b, c)
12
- # [a, b, d]
13
- #end
14
- #def qux(a, b, c)
15
- # [a, b, d]
16
- #end
17
- #a = ["S", :s]
18
- #bar(1, *a)
19
-
20
- #a = ["S"] + [:s]
21
- #baz(1, *a)
22
-
23
- #a = [1, "S"]
24
- #qux(*a, :s)
25
-
26
- __END__
27
- # Classes
28
- class Object
29
- private
30
- def foo: (Integer a, String b, :s c) -> [Integer, String, :s]
31
- end
data/smoke/rest3.rb DELETED
@@ -1,37 +0,0 @@
1
- string_array = ["str"] + ["str"]
2
-
3
- def foo(*r)
4
- end
5
- foo(*string_array)
6
-
7
- def bar(*r)
8
- end
9
- bar(1, *string_array)
10
-
11
- def baz(x, *r)
12
- end
13
- baz(*string_array)
14
-
15
- def qux(x, *r)
16
- end
17
- qux(1, *string_array)
18
-
19
- def corge(*r, z)
20
- end
21
- corge(1, *string_array)
22
-
23
- def grault(a, o=1, *r, z)
24
- end
25
- grault(*string_array)
26
-
27
- __END__
28
- # Classes
29
- class Object
30
- private
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
- end
data/smoke/rest4.rb DELETED
@@ -1,19 +0,0 @@
1
- def foo(*a)
2
- end
3
-
4
- a = ["str"] + ["str"]
5
- foo(1, *a, :s)
6
-
7
- def bar(x, y, z)
8
- end
9
-
10
- a = ["str"] + ["str"]
11
- bar(1, *a, :s)
12
-
13
- __END__
14
- # Classes
15
- class Object
16
- private
17
- def foo: (*:s | Integer | String a) -> nil
18
- def bar: (Integer x, :s | String y, :s | String z) -> nil
19
- end
data/smoke/rest5.rb DELETED
@@ -1,11 +0,0 @@
1
- def foo(*args)
2
- args
3
- end
4
-
5
- foo(42)
6
- __END__
7
- # Classes
8
- class Object
9
- private
10
- def foo: (*Integer args) -> [Integer]
11
- end
data/smoke/rest6.rb DELETED
@@ -1,12 +0,0 @@
1
- def foo(o1=1, *r)
2
- [r]
3
- end
4
-
5
- foo()
6
- foo("x", "x")
7
- __END__
8
- # Classes
9
- class Object
10
- private
11
- def foo: (?Integer | String o1, *String r) -> [Array[String]]
12
- end
data/smoke/retry1.rb DELETED
@@ -1,21 +0,0 @@
1
- def bar(x)
2
- x
3
- end
4
-
5
- def foo(x)
6
- bar(x)
7
- rescue
8
- x = "str"
9
- retry
10
- 42
11
- end
12
-
13
- foo(42)
14
-
15
- __END__
16
- # Classes
17
- class Object
18
- private
19
- def bar: (Integer | String x) -> (Integer | String)
20
- def foo: (Integer | String x) -> (Integer | String)
21
- end
data/smoke/return.rb DELETED
@@ -1,14 +0,0 @@
1
- def foo
2
- loop do
3
- return 42
4
- end
5
- nil
6
- end
7
-
8
- foo
9
- __END__
10
- # Classes
11
- class Object
12
- private
13
- def foo: -> Integer
14
- end
data/smoke/reveal.rb DELETED
@@ -1,13 +0,0 @@
1
- p(1)
2
- p("str")
3
- p(:sym)
4
- p([1, "str", :sym])
5
-
6
- __END__
7
- # Revealed types
8
- # smoke/reveal.rb:1 #=> Integer
9
- # smoke/reveal.rb:2 #=> String
10
- # smoke/reveal.rb:3 #=> :sym
11
- # smoke/reveal.rb:4 #=> [Integer, String, :sym]
12
-
13
- # Classes
data/smoke/simple.rb DELETED
@@ -1,12 +0,0 @@
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
@@ -1,8 +0,0 @@
1
- class << Object.new
2
- end
3
-
4
- __END__
5
- # Errors
6
- smoke/singleton_class.rb:1: [warning] A singleton class is open for Object; handled as any
7
-
8
- # Classes
@@ -1,12 +0,0 @@
1
- V = Object.new
2
- def V.foo
3
- # Currently, this call is ignored because the recv of the call is any
4
- # We may allow a call whose recv is any to invoke Kernel's methods
5
- p(1)
6
- end
7
-
8
- __END__
9
- # Classes
10
- class Object
11
- V: Object
12
- end
data/smoke/step.rb DELETED
@@ -1,18 +0,0 @@
1
- def log1(x)
2
- end
3
- def log2(x)
4
- end
5
- def log3(x)
6
- end
7
-
8
- log2(1.step(5) {|n| log1(n) })
9
- log3(1.step(5))
10
-
11
- __END__
12
- # Classes
13
- class Object
14
- private
15
- def log1: (Integer | Numeric x) -> nil
16
- def log2: (void x) -> nil
17
- def log3: (Enumerator[Integer | Numeric] x) -> nil
18
- end
@@ -1,12 +0,0 @@
1
- def foo
2
- "".split("").map {|n| n.to_i }
3
- end
4
-
5
- foo
6
-
7
- __END__
8
- # Classes
9
- class Object
10
- private
11
- def foo: -> Array[Integer]
12
- end
@@ -1,10 +0,0 @@
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[untyped]
7
- attr_accessor a(): Integer
8
- attr_accessor b(): String
9
- attr_accessor c(): Float
10
- end
data/smoke/struct.rb DELETED
@@ -1,13 +0,0 @@
1
- # tentative: Currently, the hidden instance variable belongs to Foo, not Anonymous Struct.
2
- # Thus, it outputs "untyped"
3
- class Foo < Struct.new(:a)
4
- end
5
- Foo.new.a = 1
6
- __END__
7
- # Classes
8
- class AnonymousStruct_generated_1 < Struct[untyped]
9
- attr_accessor a(): untyped
10
- end
11
-
12
- class Foo < AnonymousStruct_generated_1
13
- end
data/smoke/struct2.rb DELETED
@@ -1,25 +0,0 @@
1
- FooBar = Struct.new(:foo, :bar)
2
- class FooBar
3
- def my_foo
4
- foo
5
- end
6
- end
7
- def gen_foobar
8
- FooBar.new(1)
9
- end
10
- foobar = gen_foobar
11
- foobar.foo = "str"
12
- foobar.bar = :sym
13
-
14
- __END__
15
- # Classes
16
- class Object
17
- private
18
- def gen_foobar: -> FooBar
19
- end
20
-
21
- class FooBar < Struct[untyped]
22
- attr_accessor foo(): Integer | String
23
- attr_accessor bar(): :sym?
24
- def my_foo: -> (Integer | String)
25
- end
data/smoke/struct3.rb DELETED
@@ -1,14 +0,0 @@
1
- class App
2
- FooBar = Struct.new(:foo, :bar)
3
- end
4
-
5
- App::FooBar.new(1, "str")
6
-
7
- __END__
8
- # Classes
9
- class App
10
- class FooBar < Struct[untyped]
11
- attr_accessor foo(): Integer
12
- attr_accessor bar(): String
13
- end
14
- end
data/smoke/struct4.rb DELETED
@@ -1,7 +0,0 @@
1
- UndefinedConstant::Foo = Struct.new(:foo)
2
-
3
- __END__
4
- # Classes
5
- class AnonymousStruct_generated_1 < Struct[untyped]
6
- attr_accessor foo(): untyped
7
- end
data/smoke/struct5.rb DELETED
@@ -1,16 +0,0 @@
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[untyped]
14
- attr_accessor foo(): String
15
- def initialize: (Integer foo) -> void
16
- end
data/smoke/struct6.rb DELETED
@@ -1,15 +0,0 @@
1
- class Foo < Struct.new(:foo)
2
- def initialize(foo)
3
- super(foo.to_s)
4
- end
5
- end
6
-
7
- __END__
8
- # Classes
9
- class AnonymousStruct_generated_1 < Struct[untyped]
10
- attr_accessor foo(): untyped
11
- end
12
-
13
- class Foo < AnonymousStruct_generated_1
14
- def initialize: (untyped foo) -> void
15
- end
data/smoke/struct7.rb DELETED
@@ -1,17 +0,0 @@
1
- # I'm unsure how this is useful
2
- # This test just checks if TypeProf raises no exception
3
-
4
- class Foo < Struct
5
- end
6
-
7
- class Foo
8
- def initialize
9
- super
10
- end
11
- end
12
-
13
- __END__
14
- # Classes
15
- class Foo < Struct[untyped]
16
- def initialize: -> void
17
- end
@@ -1,10 +0,0 @@
1
- def foo(age: nil)
2
- end
3
-
4
- foo(age: 1)
5
- __END__
6
- # Classes
7
- class Object
8
- private
9
- def foo: (?age: Integer?) -> nil
10
- end
data/smoke/super1.rb DELETED
@@ -1,69 +0,0 @@
1
- def log(x)
2
- end
3
-
4
- class A; end
5
- class B; end
6
- class C; end
7
- class X; end
8
- class Y; end
9
- class Z; end
10
-
11
- class Foo
12
- def f(x)
13
- log(self)
14
- X.new
15
- end
16
- end
17
-
18
- class Bar < Foo
19
- def f(x)
20
- super(C.new)
21
- Y.new
22
- end
23
- end
24
-
25
- class Baz < Bar
26
- def f(x)
27
- super(B.new)
28
- Z.new
29
- end
30
- end
31
-
32
- Baz.new.f(A.new)
33
-
34
- __END__
35
- # Classes
36
- class Object
37
- private
38
- def log: (Baz x) -> nil
39
- end
40
-
41
- class A
42
- end
43
-
44
- class B
45
- end
46
-
47
- class C
48
- end
49
-
50
- class X
51
- end
52
-
53
- class Y
54
- end
55
-
56
- class Z
57
- end
58
-
59
- class Foo
60
- def f: (C x) -> X
61
- end
62
-
63
- class Bar < Foo
64
- def f: (B x) -> Y
65
- end
66
-
67
- class Baz < Bar
68
- def f: (A x) -> Z
69
- end
data/smoke/super2.rb DELETED
@@ -1,16 +0,0 @@
1
- class Foo
2
- def f
3
- super
4
- end
5
- end
6
-
7
- Foo.new.f
8
-
9
- __END__
10
- # Errors
11
- smoke/super2.rb:3: [error] no superclass method: Foo#f
12
-
13
- # Classes
14
- class Foo
15
- def f: -> untyped
16
- end
data/smoke/super3.rb DELETED
@@ -1,20 +0,0 @@
1
- class Foo
2
- def self.new(a)
3
- super(a)
4
- end
5
-
6
- def initialize(a)
7
- @a = a
8
- end
9
- end
10
-
11
- Foo.new(1)
12
-
13
- __END__
14
- # Classes
15
- class Foo
16
- @a: Integer
17
-
18
- def self.new: (Integer a) -> Foo
19
- def initialize: (Integer a) -> void
20
- end
data/smoke/super4.rb DELETED
@@ -1,45 +0,0 @@
1
- module M1
2
- def f(m); super :M1; end
3
- end
4
- module M2
5
- def f(m); super :M2; end
6
- end
7
- class C
8
- def f(m); end
9
- end
10
- class D < C
11
- def f(m); super :D; end
12
- include M1
13
- end
14
- class E < D
15
- def f(m); super :E; end
16
- include M2
17
- end
18
-
19
- E.new.f(:top)
20
-
21
- __END__
22
- # Classes
23
- module M1
24
- def f: (:D m) -> nil
25
- end
26
-
27
- module M2
28
- def f: (:E m) -> nil
29
- end
30
-
31
- class C
32
- def f: (:M1 m) -> nil
33
- end
34
-
35
- class D < C
36
- include M1
37
-
38
- def f: (:M2 m) -> nil
39
- end
40
-
41
- class E < D
42
- include M2
43
-
44
- def f: (:top m) -> nil
45
- end
data/smoke/super5.rb DELETED
@@ -1,38 +0,0 @@
1
- module M
2
- def f(m); super :M; end
3
- end
4
- class C
5
- def f(m); end
6
- end
7
- class D < C
8
- def f(m); super :D; end
9
- include M
10
- end
11
- class E < D
12
- def f(m); super :E; end
13
- include M
14
- end
15
-
16
- E.new.f(:top)
17
-
18
- __END__
19
- # Classes
20
- module M
21
- def f: (:D | :E m) -> nil
22
- end
23
-
24
- class C
25
- def f: (:M m) -> nil
26
- end
27
-
28
- class D < C
29
- include M
30
-
31
- def f: (:M m) -> nil
32
- end
33
-
34
- class E < D
35
- include M
36
-
37
- def f: (:top m) -> nil
38
- end