typeprof 0.15.3 → 0.20.3

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