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/block5.rb DELETED
@@ -1,21 +0,0 @@
1
- F = -> x { "str" }
2
-
3
- def foo(&blk)
4
- blk.call(:sym, &F)
5
- end
6
-
7
- foo do |dummy, &blk|
8
- blk.call(42)
9
- end
10
-
11
- # truly expected:
12
- # Object#foo :: (&Proc[(Symbol, &Proc[(Integer) -> String]) -> String]) -> String
13
-
14
- __END__
15
- # Classes
16
- class Object
17
- F: ^(Integer) -> String
18
-
19
- private
20
- def foo: { (:sym) -> String } -> String
21
- end
data/smoke/block6.rb DELETED
@@ -1,21 +0,0 @@
1
- def bar
2
- yield
3
- end
4
-
5
- def foo
6
- x = 42
7
- bar do
8
- x = "STR"
9
- end
10
- x
11
- end
12
-
13
- foo
14
-
15
- __END__
16
- # Classes
17
- class Object
18
- private
19
- def bar: { -> String } -> String
20
- def foo: -> (Integer | String)
21
- end
data/smoke/block7.rb DELETED
@@ -1,19 +0,0 @@
1
- def foo
2
- yield
3
- end
4
-
5
- any = undefined_method
6
- foo(&any)
7
-
8
- foo(&1)
9
-
10
- __END__
11
- # Errors
12
- smoke/block7.rb:5: [error] undefined method: Object#undefined_method
13
- smoke/block7.rb:8: [error] wrong argument type Integer<1> (expected Proc)
14
-
15
- # Classes
16
- class Object
17
- private
18
- def foo: -> untyped
19
- end
data/smoke/block8.rb DELETED
@@ -1,28 +0,0 @@
1
- def bar
2
- baz do
3
- yield
4
- end
5
- end
6
-
7
- def baz
8
- yield
9
- end
10
-
11
- def foo
12
- a = 42
13
- bar do
14
- a = "str"
15
- end
16
- a
17
- end
18
-
19
- foo
20
-
21
- __END__
22
- # Classes
23
- class Object
24
- private
25
- def bar: { -> String } -> String
26
- def baz: { -> String } -> String
27
- def foo: -> (Integer | String)
28
- end
data/smoke/block9.rb DELETED
@@ -1,13 +0,0 @@
1
- def foo(&b)
2
- b = 1
3
- b
4
- end
5
-
6
- foo { }
7
-
8
- __END__
9
- # Classes
10
- class Object
11
- private
12
- def foo: { -> nil } -> Integer
13
- end
data/smoke/block_given.rb DELETED
@@ -1,37 +0,0 @@
1
- def foo
2
- block_given?
3
- end
4
-
5
- foo {}
6
-
7
- def bar
8
- block_given?
9
- end
10
-
11
- bar
12
-
13
- def baz
14
- block_given?
15
- end
16
-
17
- baz {}
18
- baz
19
-
20
- def qux
21
- block_given?
22
- end
23
-
24
- qux(&unknown)
25
-
26
- __END__
27
- # Errors
28
- smoke/block_given.rb:24: [error] undefined method: Object#unknown
29
-
30
- # Classes
31
- class Object
32
- private
33
- def foo: { -> nil } -> true
34
- def bar: -> false
35
- def baz: ?{ -> nil } -> bool
36
- def qux: -> bool
37
- end
data/smoke/blown.rb DELETED
@@ -1,13 +0,0 @@
1
- def foo(&blk)
2
- [blk]
3
- end
4
-
5
- foo { }
6
- foo { }
7
-
8
- __END__
9
- # Classes
10
- class Object
11
- private
12
- def foo: { -> nil } -> [^-> nil]
13
- end
data/smoke/break1.rb DELETED
@@ -1,19 +0,0 @@
1
- def foo
2
- yield 42
3
- end
4
-
5
- def bar
6
- foo do |n|
7
- break n.to_s
8
- end
9
- end
10
-
11
- bar
12
-
13
- __END__
14
- # Classes
15
- class Object
16
- private
17
- def foo: { (Integer) -> bot } -> bot
18
- def bar: -> String
19
- end
data/smoke/break2.rb DELETED
@@ -1,16 +0,0 @@
1
- def foo
2
- 1.times do |n|
3
- raise
4
- rescue
5
- break "str"
6
- end
7
- end
8
-
9
- foo
10
-
11
- __END__
12
- # Classes
13
- class Object
14
- private
15
- def foo: -> String
16
- end
data/smoke/break3.rb DELETED
@@ -1,13 +0,0 @@
1
- def foo
2
- begin
3
- rescue
4
- break 42
5
- end while true
6
- end
7
-
8
- __END__
9
- # Classes
10
- class Object
11
- private
12
- def foo: -> Integer
13
- end
data/smoke/break4.rb DELETED
@@ -1,17 +0,0 @@
1
- # The following "break" is compiled as "throw" instruction since https://github.com/ruby/ruby/commit/34bc8210ed1624dc6ba24afef4616baa5a934df9
2
- def foo
3
- begin
4
- while true
5
- break 1
6
- end
7
- rescue
8
- "foo"
9
- end
10
- end
11
-
12
- __END__
13
- # Classes
14
- class Object
15
- private
16
- def foo: -> (Integer | String)
17
- end
data/smoke/case.rb DELETED
@@ -1,17 +0,0 @@
1
- def foo
2
- case "foo"
3
- when "foo"
4
- 1
5
- when "bar", "baz"
6
- :sym
7
- end
8
- end
9
-
10
- foo
11
-
12
- __END__
13
- # Classes
14
- class Object
15
- private
16
- def foo: -> ((:sym | Integer)?)
17
- end
data/smoke/case2.rb DELETED
@@ -1,18 +0,0 @@
1
- def foo
2
- ary = ["bar", "baz"]
3
- case "foo"
4
- when "foo"
5
- 1
6
- when *ary
7
- :sym
8
- end
9
- end
10
-
11
- foo
12
-
13
- __END__
14
- # Classes
15
- class Object
16
- private
17
- def foo: -> ((:sym | Integer)?)
18
- end
data/smoke/case3.rb DELETED
@@ -1,17 +0,0 @@
1
- def foo
2
- case
3
- when *[]
4
- return 1
5
- when false
6
- return 1.0
7
- when rand < 0.5
8
- return "str"
9
- end
10
- end
11
-
12
- __END__
13
- # Classes
14
- class Object
15
- private
16
- def foo: -> ((Integer | String)?)
17
- end
@@ -1,54 +0,0 @@
1
- A = 1
2
-
3
- module Lib
4
- module Mod
5
- end
6
- class Base
7
- end
8
- end
9
-
10
- module App
11
- class Foo < Lib::Base
12
- include Lib::Mod
13
- CONST1 = Foo.new
14
- class Bar
15
- CONST2 = Bar.new
16
- end
17
- end
18
-
19
- CONST3 = Foo::Bar.new
20
- class Baz < App::Foo
21
- CONST4 = Foo::Bar.new
22
- end
23
- end
24
-
25
- __END__
26
- # Classes
27
- class Object
28
- A: Integer
29
- end
30
-
31
- module Lib
32
- module Mod
33
- end
34
-
35
- class Base
36
- end
37
- end
38
-
39
- module App
40
- CONST3: Foo::Bar
41
-
42
- class Foo < Lib::Base
43
- CONST1: Foo
44
- include Lib::Mod
45
-
46
- class Bar
47
- CONST2: Bar
48
- end
49
- end
50
-
51
- class Baz < Foo
52
- CONST4: Foo::Bar
53
- end
54
- end
@@ -1,27 +0,0 @@
1
- class A
2
- class B
3
- class C
4
- def get_a
5
- A.new
6
- end
7
- def get_b
8
- B.new
9
- end
10
- def get_c
11
- C.new
12
- end
13
- end
14
- end
15
- end
16
-
17
- __END__
18
- # Classes
19
- class A
20
- class B
21
- class C
22
- def get_a: -> A
23
- def get_b: -> B
24
- def get_c: -> C
25
- end
26
- end
27
- end
data/smoke/class-new.rb DELETED
@@ -1,15 +0,0 @@
1
- Foo = Class.new
2
- Foo::Bar = 1
3
- Foo.extend(Enumerable)
4
- Foo.include(Enumerable)
5
- class Foo::Baz
6
- end
7
- Foo.send(:private, :foo)
8
-
9
- # XXX: should be supported better
10
-
11
- __END__
12
- # Classes
13
- class Object
14
- Foo: Class
15
- end
data/smoke/class.rb DELETED
@@ -1,7 +0,0 @@
1
- class Foo
2
- x = 1
3
- end
4
- __END__
5
- # Classes
6
- class Foo
7
- end
data/smoke/class_eval.rb DELETED
@@ -1,22 +0,0 @@
1
- module Foo
2
- end
3
-
4
- module Bar
5
- Foo.class_eval do
6
- @foo = self
7
- def foo
8
- "str"
9
- end
10
- end
11
- end
12
-
13
- __END__
14
- # Classes
15
- module Foo
16
- self.@foo: singleton(Foo)
17
-
18
- def self.foo: -> String
19
- end
20
-
21
- module Bar
22
- end
@@ -1,9 +0,0 @@
1
- class Foo
2
- @foo = 1
3
- end
4
-
5
- __END__
6
- # Classes
7
- class Foo
8
- self.@foo: Integer
9
- end
@@ -1,25 +0,0 @@
1
- class Test
2
- def self.foo(x)
3
- x
4
- end
5
-
6
- def Test.bar(x)
7
- x
8
- end
9
-
10
- #class << self
11
- # alias baz bar
12
- #end
13
- end
14
-
15
- Test.foo(1)
16
- Test.bar("str")
17
- #Test.baz(:sym)
18
- # Test#foo: (Integer) -> Integer
19
-
20
- __END__
21
- # Classes
22
- class Test
23
- def self.foo: (Integer x) -> Integer
24
- def self.bar: (String x) -> String
25
- end
@@ -1,21 +0,0 @@
1
- class Test
2
- class << self
3
- def foo(x)
4
- x
5
- end
6
-
7
- alias bar foo
8
- end
9
- end
10
-
11
- Test.foo(1)
12
- Test.bar("str")
13
- #Test.baz(:sym)
14
- # Test#foo: (Integer) -> Integer
15
-
16
- __END__
17
- # Classes
18
- class Test
19
- def self.foo: (Integer | String x) -> (Integer | String)
20
- alias self.bar self.foo
21
- end
@@ -1,29 +0,0 @@
1
- class ForWin
2
- end
3
- class ForLinux
4
- end
5
-
6
- v = RUBY_PLATFORM =~ /windows/ ? ForWin : ForLinux
7
-
8
- def v.foo
9
- end
10
-
11
- if RUBY_PLATFORM =~ /windows/
12
- v = ForWin
13
- else
14
- v = ForLinux
15
- end
16
-
17
- v.foo
18
-
19
- __END__
20
- # Classes
21
- class ForWin
22
- private
23
- def self.foo: -> nil
24
- end
25
-
26
- class ForLinux
27
- private
28
- def self.foo: -> nil
29
- end
data/smoke/constant1.rb DELETED
@@ -1,46 +0,0 @@
1
- CONST = 1
2
-
3
- class Foo
4
- CONST = "str"
5
- class Bar
6
- def get1
7
- CONST
8
- end
9
-
10
- def get2
11
- ::CONST
12
- end
13
-
14
- def get3
15
- Object::CONST
16
- end
17
- end
18
- end
19
-
20
- class Foo::Bar
21
- def get4
22
- CONST
23
- end
24
- end
25
-
26
- Foo::Bar.new.get1 # String
27
- Foo::Bar.new.get2 # Integer
28
- Foo::Bar.new.get3 # Integer
29
- Foo::Bar.new.get4 # Integer
30
-
31
- __END__
32
- # Classes
33
- class Object
34
- CONST: Integer
35
- end
36
-
37
- class Foo
38
- CONST: String
39
-
40
- class Bar
41
- def get1: -> String
42
- def get2: -> Integer
43
- def get3: -> Integer
44
- def get4: -> Integer
45
- end
46
- end
data/smoke/constant2.rb DELETED
@@ -1,36 +0,0 @@
1
- def foo(x)
2
- end
3
-
4
- foo(UNDEFINED_CONSTANT)
5
- foo(1)
6
-
7
- C = "dummy"
8
- class C
9
- def foo
10
- end
11
- self.new.foo
12
- end
13
-
14
- BAR = 1
15
- BAR = "str"
16
- def log(x)
17
- end
18
- log(BAR)
19
-
20
- __END__
21
- # Errors
22
- smoke/constant2.rb:8: [error] the class "C" is String
23
- smoke/constant2.rb:15: [warning] already initialized constant Object::BAR
24
-
25
- # Classes
26
- class Object
27
- BAR: String
28
-
29
- private
30
- def foo: (Integer | untyped x) -> nil
31
- def log: (String x) -> nil
32
- end
33
-
34
- class C
35
- def foo: -> nil
36
- end
data/smoke/constant3.rb DELETED
@@ -1,10 +0,0 @@
1
- def foo
2
- 1::Foo
3
- end
4
- foo
5
- __END__
6
- # Classes
7
- class Object
8
- private
9
- def foo: -> untyped
10
- end
data/smoke/constant4.rb DELETED
@@ -1,12 +0,0 @@
1
- def foo
2
- Complex::I
3
- end
4
-
5
- foo
6
-
7
- __END__
8
- # Classes
9
- class Object
10
- private
11
- def foo: -> Complex
12
- end
@@ -1,13 +0,0 @@
1
- def foo(x)
2
- x
3
- end
4
-
5
- x = nil
6
- foo(x || 1)
7
-
8
- __END__
9
- # Classes
10
- class Object
11
- private
12
- def foo: (Integer x) -> Integer
13
- end
data/smoke/cvar.rb DELETED
@@ -1,31 +0,0 @@
1
- def log1(x)
2
- end
3
-
4
- def log2(x)
5
- end
6
-
7
- class A
8
- FOO=1
9
- @@var = 1
10
- log1(@@var)
11
- def foo
12
- log2(@@var)
13
- end
14
- end
15
-
16
- A.new.foo
17
-
18
- __END__
19
- # Classes
20
- class Object
21
- private
22
- def log1: (Integer x) -> nil
23
- def log2: (Integer x) -> nil
24
- end
25
-
26
- class A
27
- FOO: Integer
28
- @@var: Integer
29
-
30
- def foo: -> nil
31
- end
data/smoke/cvar2.rb DELETED
@@ -1,17 +0,0 @@
1
- class A
2
- @@var = :a
3
- end
4
-
5
- class B < A
6
- @@var = :b
7
- end
8
-
9
- __END__
10
- # Classes
11
- class A
12
- @@var: :a
13
- end
14
-
15
- class B < A
16
- @@var: :b
17
- end
@@ -1,16 +0,0 @@
1
- class Foo
2
- def bar(n)
3
- :BAR
4
- end
5
-
6
- define_method(:foo) do |n|
7
- bar(:FOO)
8
- end
9
- end
10
-
11
- __END__
12
- # Classes
13
- class Foo
14
- def bar: (:FOO | untyped n) -> :BAR
15
- def foo: (untyped n) -> :BAR
16
- end