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/module6.rb DELETED
@@ -1,40 +0,0 @@
1
- module A
2
- end
3
-
4
- module B
5
- include A
6
- end
7
-
8
- module A
9
- include B
10
- end
11
-
12
- class C
13
- include A
14
- end
15
-
16
- def log
17
- C.new.foo
18
- end
19
-
20
- __END__
21
- # Errors
22
- smoke/module6.rb:17: [error] undefined method: C#foo
23
-
24
- # Classes
25
- class Object
26
- private
27
- def log: -> untyped
28
- end
29
-
30
- module A
31
- include B
32
- end
33
-
34
- module B
35
- include A
36
- end
37
-
38
- class C
39
- include A
40
- end
@@ -1,29 +0,0 @@
1
- module Foo
2
- def foo(x)
3
- x
4
- end
5
- module_function :foo
6
- end
7
-
8
- class Bar
9
- include Foo
10
- def bar
11
- foo(:y)
12
- end
13
- end
14
-
15
- Foo.foo(:x)
16
- Bar.new.bar
17
-
18
- __END__
19
- # Classes
20
- module Foo
21
- def foo: (:x | :y x) -> (:x | :y)
22
- def self.foo: (:x | :y x) -> (:x | :y)
23
- end
24
-
25
- class Bar
26
- include Foo
27
-
28
- def bar: -> (:x | :y)
29
- end
@@ -1,29 +0,0 @@
1
- module Foo
2
- module_function
3
- def foo(x)
4
- x
5
- end
6
- end
7
-
8
- class Bar
9
- include Foo
10
- def bar
11
- foo(:y)
12
- end
13
- end
14
-
15
- Foo.foo(:x)
16
- Bar.new.bar
17
-
18
- __END__
19
- # Classes
20
- module Foo
21
- def foo: (:x | :y x) -> (:x | :y)
22
- def self.foo: (:x | :y x) -> (:x | :y)
23
- end
24
-
25
- class Bar
26
- include Foo
27
-
28
- def bar: -> (:x | :y)
29
- end
@@ -1,15 +0,0 @@
1
- class Foo
2
- include Comparable
3
- include Comparable
4
- include Comparable
5
- def foo
6
- end
7
- end
8
-
9
- __END__
10
- # Classes
11
- class Foo
12
- include Comparable
13
-
14
- def foo: -> nil
15
- end
@@ -1,28 +0,0 @@
1
- class A
2
- end
3
-
4
- class B
5
- end
6
-
7
- Base = rand < 0.5 ? A : B
8
-
9
- class C < Base
10
- end
11
-
12
- __END__
13
- # Errors
14
- smoke/multiple-superclass.rb:9: [warning] superclass is not a class; Object is used instead
15
-
16
- # Classes
17
- class Object
18
- Base: singleton(A) | singleton(B)
19
- end
20
-
21
- class A
22
- end
23
-
24
- class B
25
- end
26
-
27
- class C
28
- end
data/smoke/next1.rb DELETED
@@ -1,21 +0,0 @@
1
- def bar(n)
2
- n
3
- end
4
-
5
- def foo
6
- yield 42
7
- end
8
-
9
- foo do |x|
10
- bar(x)
11
- next "str"
12
- no_method
13
- end
14
-
15
- __END__
16
- # Classes
17
- class Object
18
- private
19
- def bar: (Integer n) -> Integer
20
- def foo: { (Integer) -> String } -> String
21
- end
data/smoke/next2.rb DELETED
@@ -1,17 +0,0 @@
1
- def foo
2
- yield
3
- end
4
-
5
- foo do
6
- raise
7
- "str"
8
- rescue
9
- next 42
10
- end
11
-
12
- __END__
13
- # Classes
14
- class Object
15
- private
16
- def foo: { -> Integer } -> Integer
17
- end
data/smoke/noname.rb DELETED
@@ -1,9 +0,0 @@
1
- def foo(*)
2
- end
3
-
4
- __END__
5
- # Classes
6
- class Object
7
- private
8
- def foo: (*untyped noname_2) -> nil
9
- end
@@ -1,23 +0,0 @@
1
- def foo(x)
2
- x
3
- end
4
-
5
- def bar(x)
6
- x
7
- end
8
-
9
- def dispatch(mid)
10
- send(mid, 1)
11
- end
12
-
13
- dispatch(:foo)
14
- dispatch(:bar)
15
-
16
- __END__
17
- # Classes
18
- class Object
19
- private
20
- def foo: (Integer x) -> Integer
21
- def bar: (Integer x) -> Integer
22
- def dispatch: (:bar | :foo mid) -> Integer
23
- end
@@ -1,10 +0,0 @@
1
- def foo
2
- nil.send
3
- end
4
-
5
- __END__
6
- # Classes
7
- class Object
8
- private
9
- def foo: -> untyped
10
- end
@@ -1,18 +0,0 @@
1
- class Foo
2
- include Enumerable
3
- end
4
-
5
- def log
6
- Foo.new.send(*:cycle)
7
- end
8
-
9
- __END__
10
- # Classes
11
- class Object
12
- private
13
- def log: -> Enumerator[untyped]
14
- end
15
-
16
- class Foo
17
- include Enumerable
18
- end
data/smoke/once.rb DELETED
@@ -1,13 +0,0 @@
1
- def foo
2
- r = /foo#{x=1}bar/o
3
- [r, x]
4
- end
5
-
6
- foo
7
-
8
- __END__
9
- # Classes
10
- class Object
11
- private
12
- def foo: -> [Regexp, Integer?]
13
- end
data/smoke/optional1.rb DELETED
@@ -1,14 +0,0 @@
1
- def foo(a, o1=1, o2=2, z)
2
- [a, o1, o2, z]
3
- end
4
-
5
- foo("A", "Z")
6
- foo("A", "B", "Z")
7
- foo("A", "B", "C", "Z")
8
-
9
- __END__
10
- # Classes
11
- class Object
12
- private
13
- def foo: (String a, ?Integer | String o1, ?Integer | String o2, String z) -> ([String, Integer | String, Integer | String, String])
14
- end
data/smoke/optional2.rb DELETED
@@ -1,16 +0,0 @@
1
- def foo(a, o1=1, o2=2, *r, z)
2
- [a, o1, o2, r, z]
3
- end
4
-
5
- foo("A", "Z")
6
- foo("A", "B", "Z")
7
- foo("A", "B", "C", "Z")
8
- foo("A", "B", "C", "D", "Z")
9
- foo("A", "B", "C", "D", "E", "Z")
10
-
11
- __END__
12
- # Classes
13
- class Object
14
- private
15
- def foo: (String a, ?Integer | String o1, ?Integer | String o2, *String r, String z) -> ([String, Integer | String, Integer | String, Array[String], String])
16
- end
data/smoke/optional3.rb DELETED
@@ -1,11 +0,0 @@
1
- def foo(n = 1)
2
- end
3
-
4
- foo("str")
5
-
6
- __END__
7
- # Classes
8
- class Object
9
- private
10
- def foo: (?Integer | String n) -> nil
11
- end
data/smoke/or_raise.rb DELETED
@@ -1,18 +0,0 @@
1
- def foo
2
- if rand < 0.5
3
- 1
4
- end
5
- end
6
-
7
- def bar
8
- x = foo or raise("nil")
9
- x.times { }
10
- end
11
-
12
- __END__
13
- # Classes
14
- class Object
15
- private
16
- def foo: -> Integer?
17
- def bar: -> Integer
18
- end
@@ -1,20 +0,0 @@
1
- class Object
2
- def foo
3
- self
4
- end
5
- end
6
-
7
- def bar(ary)
8
- ary.foo
9
- end
10
-
11
- bar([])
12
-
13
- __END__
14
- # Classes
15
- class Object
16
- def foo: -> Array[untyped]
17
-
18
- private
19
- def bar: (Array[untyped] ary) -> Array[untyped]
20
- end
@@ -1,15 +0,0 @@
1
- class Object
2
- def foo
3
- # The receiver is considered as an empty array
4
- self[0]
5
- end
6
- end
7
-
8
- # The elements are dropped when it is passed as a receiver (to avoid state explosion)
9
- [0].foo
10
-
11
- __END__
12
- # Classes
13
- class Object
14
- def foo: -> nil
15
- end
data/smoke/pathname1.rb DELETED
@@ -1,14 +0,0 @@
1
- require "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/pathname2.rb DELETED
@@ -1,14 +0,0 @@
1
- require "pathname"
2
-
3
- def foo
4
- Pathname("foo")
5
- end
6
-
7
- foo
8
-
9
- __END__
10
- # Classes
11
- class Object
12
- private
13
- def foo: -> Pathname
14
- end
@@ -1,19 +0,0 @@
1
- # RUBY_VERSION >= 3.0
2
- # NO_SHOW_ERRORS
3
-
4
- def foo
5
- case [:a, :b, :c]
6
- in [a, b, :c]
7
- # Due to very subtle detail of bytecode, the variables "a" and "b" could be nil
8
- return a, b
9
- end
10
- end
11
-
12
- foo
13
-
14
- __END__
15
- # Classes
16
- class Object
17
- private
18
- def foo: -> ([:a | untyped, :b | untyped])
19
- end
@@ -1,16 +0,0 @@
1
- # RUBY_VERSION >= 3.0
2
-
3
- def foo
4
- case { a: :A, b: :B, c: :C }
5
- in { a:, b: bb, c: :C }
6
- return a, bb
7
- end
8
- end
9
-
10
- foo
11
- __END__
12
- # Classes
13
- class Object
14
- private
15
- def foo: -> [:A, :B]
16
- end
data/smoke/prepend1.rb DELETED
@@ -1,33 +0,0 @@
1
- module Mod
2
- def foo
3
- [42, super(:sym)]
4
- end
5
- end
6
-
7
- class Foo
8
- prepend Mod
9
-
10
- def foo(sym_arg)
11
- sym_arg.to_s
12
- end
13
-
14
- def bar
15
- foo
16
- end
17
- end
18
-
19
- __END__
20
- # Errors
21
- smoke/prepend1.rb:3: [error] no superclass method: Mod#foo
22
-
23
- # Classes
24
- module Mod
25
- def foo: -> ([Integer, String | untyped])
26
- end
27
-
28
- class Foo
29
- prepend Mod
30
-
31
- def foo: (:sym | untyped sym_arg) -> (String | untyped)
32
- def bar: -> ([Integer, String | untyped])
33
- end
data/smoke/prepend2.rb DELETED
@@ -1,10 +0,0 @@
1
- def log
2
- Foo.new.foo("str")
3
- end
4
-
5
- __END__
6
- # Classes
7
- class Object
8
- private
9
- def log: -> Integer
10
- end
data/smoke/prepend2.rbs DELETED
@@ -1,9 +0,0 @@
1
- module Mod
2
- def foo: (String | Integer) -> Integer
3
- end
4
-
5
- class Foo
6
- prepend Mod
7
-
8
- def foo: (Integer) -> (String | Integer)
9
- end
@@ -1,19 +0,0 @@
1
- def foo
2
- __method__
3
- end
4
-
5
- def log(dummy)
6
- end
7
-
8
- def bar
9
- log(__method__)
10
- end
11
-
12
- __END__
13
- # Classes
14
- class Object
15
- private
16
- def foo: -> :foo
17
- def log: (:bar | untyped dummy) -> nil
18
- def bar: -> nil
19
- end
data/smoke/printf.rb DELETED
@@ -1,20 +0,0 @@
1
- class F
2
- def foo
3
- printf("foo", "bar")
4
- end
5
-
6
- def bar
7
- a = %w(foo bar)
8
- printf(*a)
9
- end
10
- end
11
-
12
- F.new.foo
13
- F.new.bar
14
-
15
- __END__
16
- # Classes
17
- class F
18
- def foo: -> nil
19
- def bar: -> nil
20
- end
data/smoke/proc.rb DELETED
@@ -1,20 +0,0 @@
1
- def foo
2
- f = -> x { x }
3
- f[42]
4
- end
5
-
6
- def bar
7
- f = -> x { "str" }
8
- f[42]
9
- end
10
-
11
- foo
12
- bar
13
-
14
- __END__
15
- # Classes
16
- class Object
17
- private
18
- def foo: -> Integer
19
- def bar: -> String
20
- end
data/smoke/proc2.rb DELETED
@@ -1,17 +0,0 @@
1
- # TODO: restart is needed?
2
- def foo
3
- a = 1
4
- -> do
5
- a = "str"
6
- end.call
7
- a
8
- end
9
-
10
- foo
11
-
12
- __END__
13
- # Classes
14
- class Object
15
- private
16
- def foo: -> Integer
17
- end
data/smoke/proc3.rb DELETED
@@ -1,15 +0,0 @@
1
- def foo
2
- a = [1]
3
- -> do
4
- a[0] = "str"
5
- end.call
6
- a
7
- end
8
-
9
- foo
10
- __END__
11
- # Classes
12
- class Object
13
- private
14
- def foo: -> [Integer]
15
- end
data/smoke/proc4.rb DELETED
@@ -1,12 +0,0 @@
1
- def foo(f)
2
- f.call(1)
3
- end
4
-
5
- foo(-> x { "str" })
6
-
7
- __END__
8
- # Classes
9
- class Object
10
- private
11
- def foo: (^(Integer) -> String f) -> String
12
- end
data/smoke/proc5.rb DELETED
@@ -1,19 +0,0 @@
1
- def foo(&blk)
2
- $blk = blk
3
- nil
4
- end
5
-
6
- foo {}
7
- foo {|arg| }
8
-
9
- $blk.call(42)
10
-
11
- __END__
12
- # Global variables
13
- $blk: ^(?Integer) -> nil
14
-
15
- # Classes
16
- class Object
17
- private
18
- def foo: { (Integer) -> nil } -> nil
19
- end
data/smoke/proc6.rb DELETED
@@ -1,13 +0,0 @@
1
- # a test for a recursive proc that receives (or returns) itself
2
- def foo
3
- f = -> x { x }
4
- f[f]
5
- f
6
- end
7
-
8
- __END__
9
- # Classes
10
- class Object
11
- private
12
- def foo: -> ^(untyped) -> untyped
13
- end
data/smoke/proc7.rb DELETED
@@ -1,32 +0,0 @@
1
- class Foo
2
- def id(&blk)
3
- blk
4
- end
5
-
6
- def check(v)
7
- rand < 0.5 ? v : [v]
8
- end
9
-
10
- def foo
11
- check(id {}).call # cause "undefined method: [^-> nil?]#call"
12
- end
13
-
14
- def foo1
15
- id { }
16
- end
17
- end
18
-
19
- __END__
20
- # Errors
21
- smoke/proc7.rb:11: [error] undefined method: nil#call
22
- smoke/proc7.rb:11: [error] undefined method: [(^(unknown) -> bot | untyped)?]#call
23
- smoke/proc7.rb:11: [error] undefined method: nil#call
24
- smoke/proc7.rb:11: [error] undefined method: [(^-> nil | untyped)?]#call
25
-
26
- # Classes
27
- class Foo
28
- def id: ?{ -> nil } -> ^-> nil?
29
- def check: ((^-> nil | untyped)? v) -> (([(^-> nil | untyped)?] | ^-> nil | untyped)?)
30
- def foo: -> untyped?
31
- def foo1: -> ^-> nil?
32
- end