rbs 3.9.5 → 4.0.0

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 (330) hide show
  1. checksums.yaml +4 -4
  2. data/.clang-format +74 -0
  3. data/.clangd +2 -0
  4. data/.github/dependabot.yml +14 -14
  5. data/.github/workflows/bundle-update.yml +60 -0
  6. data/.github/workflows/c-check.yml +58 -0
  7. data/.github/workflows/comments.yml +5 -3
  8. data/.github/workflows/dependabot.yml +2 -2
  9. data/.github/workflows/ruby.yml +40 -32
  10. data/.github/workflows/rust.yml +95 -0
  11. data/.github/workflows/typecheck.yml +2 -2
  12. data/.github/workflows/windows.yml +3 -3
  13. data/.gitignore +4 -0
  14. data/.rubocop.yml +2 -2
  15. data/.vscode/extensions.json +5 -0
  16. data/.vscode/settings.json +19 -0
  17. data/CHANGELOG.md +284 -0
  18. data/README.md +38 -1
  19. data/Rakefile +144 -29
  20. data/Steepfile +2 -0
  21. data/config.yml +634 -62
  22. data/core/array.rbs +307 -227
  23. data/core/basic_object.rbs +9 -8
  24. data/core/binding.rbs +0 -2
  25. data/core/builtin.rbs +2 -2
  26. data/core/class.rbs +6 -5
  27. data/core/comparable.rbs +55 -34
  28. data/core/complex.rbs +104 -78
  29. data/core/dir.rbs +61 -49
  30. data/core/encoding.rbs +12 -15
  31. data/core/enumerable.rbs +188 -87
  32. data/core/enumerator/arithmetic_sequence.rbs +70 -0
  33. data/core/enumerator.rbs +65 -2
  34. data/core/errno.rbs +11 -2
  35. data/core/errors.rbs +58 -29
  36. data/core/exception.rbs +13 -13
  37. data/core/fiber.rbs +74 -54
  38. data/core/file.rbs +280 -177
  39. data/core/file_test.rbs +3 -3
  40. data/core/float.rbs +257 -92
  41. data/core/gc.rbs +425 -281
  42. data/core/hash.rbs +1045 -739
  43. data/core/integer.rbs +135 -137
  44. data/core/io/buffer.rbs +53 -42
  45. data/core/io/wait.rbs +13 -35
  46. data/core/io.rbs +196 -148
  47. data/core/kernel.rbs +216 -155
  48. data/core/marshal.rbs +4 -4
  49. data/core/match_data.rbs +15 -13
  50. data/core/math.rbs +107 -66
  51. data/core/method.rbs +69 -33
  52. data/core/module.rbs +244 -106
  53. data/core/nil_class.rbs +7 -6
  54. data/core/numeric.rbs +74 -63
  55. data/core/object.rbs +9 -11
  56. data/core/object_space.rbs +30 -23
  57. data/core/pathname.rbs +1322 -0
  58. data/core/proc.rbs +95 -58
  59. data/core/process.rbs +222 -202
  60. data/core/ractor.rbs +371 -515
  61. data/core/random.rbs +21 -3
  62. data/core/range.rbs +159 -57
  63. data/core/rational.rbs +60 -89
  64. data/core/rbs/unnamed/argf.rbs +60 -53
  65. data/core/rbs/unnamed/env_class.rbs +19 -14
  66. data/core/rbs/unnamed/main_class.rbs +123 -0
  67. data/core/rbs/unnamed/random.rbs +11 -118
  68. data/core/regexp.rbs +258 -214
  69. data/core/ruby.rbs +53 -0
  70. data/core/ruby_vm.rbs +38 -34
  71. data/core/rubygems/config_file.rbs +5 -5
  72. data/core/rubygems/errors.rbs +4 -71
  73. data/core/rubygems/requirement.rbs +5 -5
  74. data/core/rubygems/rubygems.rbs +16 -82
  75. data/core/rubygems/version.rbs +2 -3
  76. data/core/set.rbs +490 -360
  77. data/core/signal.rbs +26 -16
  78. data/core/string.rbs +3303 -1365
  79. data/core/struct.rbs +27 -26
  80. data/core/symbol.rbs +41 -34
  81. data/core/thread.rbs +135 -74
  82. data/core/time.rbs +81 -50
  83. data/core/trace_point.rbs +41 -35
  84. data/core/true_class.rbs +2 -2
  85. data/core/unbound_method.rbs +24 -16
  86. data/core/warning.rbs +7 -7
  87. data/docs/aliases.md +79 -0
  88. data/docs/collection.md +3 -3
  89. data/docs/config.md +171 -0
  90. data/docs/encoding.md +56 -0
  91. data/docs/gem.md +0 -1
  92. data/docs/inline.md +576 -0
  93. data/docs/sigs.md +3 -3
  94. data/docs/syntax.md +46 -16
  95. data/docs/type_fingerprint.md +21 -0
  96. data/exe/rbs +1 -1
  97. data/ext/rbs_extension/ast_translation.c +1513 -0
  98. data/ext/rbs_extension/ast_translation.h +37 -0
  99. data/ext/rbs_extension/class_constants.c +185 -0
  100. data/{include/rbs/constants.h → ext/rbs_extension/class_constants.h} +22 -1
  101. data/ext/rbs_extension/compat.h +10 -0
  102. data/ext/rbs_extension/extconf.rb +25 -1
  103. data/ext/rbs_extension/legacy_location.c +294 -0
  104. data/ext/rbs_extension/legacy_location.h +82 -0
  105. data/ext/rbs_extension/main.c +468 -24
  106. data/ext/rbs_extension/rbs_extension.h +6 -21
  107. data/ext/rbs_extension/rbs_string_bridging.c +9 -0
  108. data/ext/rbs_extension/rbs_string_bridging.h +24 -0
  109. data/include/rbs/ast.h +1022 -0
  110. data/include/rbs/defines.h +86 -0
  111. data/include/rbs/lexer.h +206 -0
  112. data/include/rbs/location.h +40 -0
  113. data/include/rbs/parser.h +153 -0
  114. data/include/rbs/string.h +47 -0
  115. data/include/rbs/util/rbs_allocator.h +59 -0
  116. data/include/rbs/util/rbs_assert.h +20 -0
  117. data/include/rbs/util/rbs_buffer.h +83 -0
  118. data/include/rbs/util/rbs_constant_pool.h +6 -70
  119. data/include/rbs/util/rbs_encoding.h +282 -0
  120. data/include/rbs/util/rbs_unescape.h +24 -0
  121. data/include/rbs.h +9 -2
  122. data/lib/rbs/annotate/formatter.rb +3 -13
  123. data/lib/rbs/annotate/rdoc_annotator.rb +3 -1
  124. data/lib/rbs/annotate/rdoc_source.rb +1 -1
  125. data/lib/rbs/ast/annotation.rb +1 -1
  126. data/lib/rbs/ast/comment.rb +1 -1
  127. data/lib/rbs/ast/declarations.rb +10 -10
  128. data/lib/rbs/ast/members.rb +14 -14
  129. data/lib/rbs/ast/ruby/annotations.rb +409 -0
  130. data/lib/rbs/ast/ruby/comment_block.rb +245 -0
  131. data/lib/rbs/ast/ruby/declarations.rb +281 -0
  132. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
  133. data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  134. data/lib/rbs/ast/ruby/members.rb +723 -0
  135. data/lib/rbs/ast/type_param.rb +24 -4
  136. data/lib/rbs/buffer.rb +105 -20
  137. data/lib/rbs/cli/diff.rb +16 -15
  138. data/lib/rbs/cli/validate.rb +63 -126
  139. data/lib/rbs/cli.rb +56 -24
  140. data/lib/rbs/collection/config/lockfile_generator.rb +14 -2
  141. data/lib/rbs/collection/sources/git.rb +1 -0
  142. data/lib/rbs/collection.rb +0 -1
  143. data/lib/rbs/definition.rb +6 -1
  144. data/lib/rbs/definition_builder/ancestor_builder.rb +121 -65
  145. data/lib/rbs/definition_builder/method_builder.rb +65 -30
  146. data/lib/rbs/definition_builder.rb +177 -20
  147. data/lib/rbs/diff.rb +7 -1
  148. data/lib/rbs/environment/class_entry.rb +69 -0
  149. data/lib/rbs/environment/module_entry.rb +66 -0
  150. data/lib/rbs/environment.rb +402 -214
  151. data/lib/rbs/environment_loader.rb +2 -8
  152. data/lib/rbs/errors.rb +31 -21
  153. data/lib/rbs/inline_parser/comment_association.rb +117 -0
  154. data/lib/rbs/inline_parser.rb +542 -0
  155. data/lib/rbs/location_aux.rb +36 -4
  156. data/lib/rbs/locator.rb +5 -1
  157. data/lib/rbs/method_type.rb +5 -3
  158. data/lib/rbs/namespace.rb +0 -7
  159. data/lib/rbs/parser_aux.rb +35 -7
  160. data/lib/rbs/prototype/helpers.rb +57 -0
  161. data/lib/rbs/prototype/rb.rb +3 -28
  162. data/lib/rbs/prototype/rbi.rb +3 -20
  163. data/lib/rbs/prototype/runtime.rb +10 -2
  164. data/lib/rbs/resolver/constant_resolver.rb +2 -2
  165. data/lib/rbs/resolver/type_name_resolver.rb +116 -38
  166. data/lib/rbs/source.rb +99 -0
  167. data/lib/rbs/subtractor.rb +7 -4
  168. data/lib/rbs/test/type_check.rb +19 -2
  169. data/lib/rbs/type_name.rb +1 -8
  170. data/lib/rbs/types.rb +91 -79
  171. data/lib/rbs/unit_test/convertibles.rb +1 -0
  172. data/lib/rbs/unit_test/type_assertions.rb +35 -8
  173. data/lib/rbs/validator.rb +2 -2
  174. data/lib/rbs/version.rb +1 -1
  175. data/lib/rbs.rb +13 -2
  176. data/lib/rdoc/discover.rb +1 -1
  177. data/lib/rdoc_plugin/parser.rb +3 -3
  178. data/rbs.gemspec +4 -2
  179. data/rust/.gitignore +1 -0
  180. data/rust/Cargo.lock +378 -0
  181. data/rust/Cargo.toml +7 -0
  182. data/rust/ruby-rbs/Cargo.toml +22 -0
  183. data/rust/ruby-rbs/build.rs +764 -0
  184. data/rust/ruby-rbs/examples/locations.rs +60 -0
  185. data/rust/ruby-rbs/src/lib.rs +1 -0
  186. data/rust/ruby-rbs/src/node/mod.rs +742 -0
  187. data/rust/ruby-rbs/tests/sanity.rs +47 -0
  188. data/rust/ruby-rbs/vendor/rbs/config.yml +1 -0
  189. data/rust/ruby-rbs-sys/Cargo.toml +23 -0
  190. data/rust/ruby-rbs-sys/build.rs +204 -0
  191. data/rust/ruby-rbs-sys/src/lib.rs +50 -0
  192. data/rust/ruby-rbs-sys/vendor/rbs/include +1 -0
  193. data/rust/ruby-rbs-sys/vendor/rbs/src +1 -0
  194. data/rust/ruby-rbs-sys/wrapper.h +1 -0
  195. data/schema/typeParam.json +17 -1
  196. data/sig/ancestor_builder.rbs +1 -1
  197. data/sig/annotate/formatter.rbs +2 -2
  198. data/sig/annotate/rdoc_annotater.rbs +1 -1
  199. data/sig/ast/ruby/annotations.rbs +421 -0
  200. data/sig/ast/ruby/comment_block.rbs +127 -0
  201. data/sig/ast/ruby/declarations.rbs +158 -0
  202. data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  203. data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  204. data/sig/ast/ruby/members.rbs +178 -0
  205. data/sig/buffer.rbs +63 -5
  206. data/sig/cli/diff.rbs +5 -11
  207. data/sig/cli/validate.rbs +12 -8
  208. data/sig/cli.rbs +18 -18
  209. data/sig/definition.rbs +6 -0
  210. data/sig/definition_builder.rbs +3 -1
  211. data/sig/environment/class_entry.rbs +50 -0
  212. data/sig/environment/module_entry.rbs +50 -0
  213. data/sig/environment.rbs +94 -87
  214. data/sig/errors.rbs +26 -20
  215. data/sig/inline_parser/comment_association.rbs +71 -0
  216. data/sig/inline_parser.rbs +124 -0
  217. data/sig/location.rbs +32 -7
  218. data/sig/locator.rbs +0 -2
  219. data/sig/manifest.yaml +0 -1
  220. data/sig/method_builder.rbs +9 -4
  221. data/sig/namespace.rbs +0 -5
  222. data/sig/parser.rbs +67 -13
  223. data/sig/prototype/helpers.rbs +2 -0
  224. data/sig/resolver/type_name_resolver.rbs +35 -7
  225. data/sig/source.rbs +48 -0
  226. data/sig/type_param.rbs +13 -8
  227. data/sig/typename.rbs +0 -5
  228. data/sig/types.rbs +10 -8
  229. data/sig/unit_test/spy.rbs +0 -8
  230. data/sig/unit_test/type_assertions.rbs +11 -0
  231. data/src/ast.c +1604 -0
  232. data/src/lexer.c +3194 -0
  233. data/src/lexer.re +154 -0
  234. data/src/lexstate.c +212 -0
  235. data/src/location.c +31 -0
  236. data/src/parser.c +4205 -0
  237. data/src/string.c +41 -0
  238. data/src/util/rbs_allocator.c +165 -0
  239. data/src/util/rbs_assert.c +19 -0
  240. data/src/util/rbs_buffer.c +54 -0
  241. data/src/util/rbs_constant_pool.c +18 -92
  242. data/src/util/rbs_encoding.c +21308 -0
  243. data/src/util/rbs_unescape.c +167 -0
  244. data/stdlib/bigdecimal/0/big_decimal.rbs +116 -98
  245. data/stdlib/bigdecimal-math/0/big_math.rbs +169 -8
  246. data/stdlib/cgi/0/core.rbs +9 -393
  247. data/stdlib/cgi/0/manifest.yaml +1 -0
  248. data/stdlib/cgi-escape/0/escape.rbs +171 -0
  249. data/stdlib/coverage/0/coverage.rbs +7 -4
  250. data/stdlib/date/0/date.rbs +92 -79
  251. data/stdlib/date/0/date_time.rbs +25 -24
  252. data/stdlib/delegate/0/delegator.rbs +10 -7
  253. data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
  254. data/stdlib/digest/0/digest.rbs +110 -0
  255. data/stdlib/erb/0/erb.rbs +748 -347
  256. data/stdlib/etc/0/etc.rbs +55 -50
  257. data/stdlib/fileutils/0/fileutils.rbs +158 -139
  258. data/stdlib/forwardable/0/forwardable.rbs +13 -10
  259. data/stdlib/io-console/0/io-console.rbs +2 -2
  260. data/stdlib/json/0/json.rbs +226 -179
  261. data/stdlib/monitor/0/monitor.rbs +3 -3
  262. data/stdlib/net-http/0/net-http.rbs +162 -134
  263. data/stdlib/objspace/0/objspace.rbs +17 -34
  264. data/stdlib/open-uri/0/open-uri.rbs +48 -8
  265. data/stdlib/open3/0/open3.rbs +469 -10
  266. data/stdlib/openssl/0/openssl.rbs +475 -357
  267. data/stdlib/optparse/0/optparse.rbs +26 -17
  268. data/stdlib/pathname/0/pathname.rbs +11 -1381
  269. data/stdlib/pp/0/pp.rbs +9 -8
  270. data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
  271. data/stdlib/pstore/0/pstore.rbs +35 -30
  272. data/stdlib/psych/0/psych.rbs +65 -12
  273. data/stdlib/psych/0/store.rbs +2 -4
  274. data/stdlib/pty/0/pty.rbs +9 -6
  275. data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  276. data/stdlib/rdoc/0/code_object.rbs +4 -3
  277. data/stdlib/rdoc/0/comment.rbs +2 -0
  278. data/stdlib/rdoc/0/options.rbs +76 -0
  279. data/stdlib/rdoc/0/parser.rbs +1 -1
  280. data/stdlib/rdoc/0/rdoc.rbs +7 -5
  281. data/stdlib/rdoc/0/store.rbs +2 -2
  282. data/stdlib/resolv/0/resolv.rbs +25 -68
  283. data/stdlib/ripper/0/ripper.rbs +25 -19
  284. data/stdlib/securerandom/0/manifest.yaml +2 -0
  285. data/stdlib/securerandom/0/securerandom.rbs +7 -20
  286. data/stdlib/shellwords/0/shellwords.rbs +2 -2
  287. data/stdlib/singleton/0/singleton.rbs +3 -0
  288. data/stdlib/socket/0/addrinfo.rbs +9 -9
  289. data/stdlib/socket/0/basic_socket.rbs +3 -3
  290. data/stdlib/socket/0/ip_socket.rbs +10 -8
  291. data/stdlib/socket/0/socket.rbs +23 -10
  292. data/stdlib/socket/0/tcp_server.rbs +1 -1
  293. data/stdlib/socket/0/tcp_socket.rbs +11 -3
  294. data/stdlib/socket/0/udp_socket.rbs +1 -1
  295. data/stdlib/socket/0/unix_server.rbs +1 -1
  296. data/stdlib/stringio/0/stringio.rbs +1177 -85
  297. data/stdlib/strscan/0/string_scanner.rbs +27 -25
  298. data/stdlib/tempfile/0/tempfile.rbs +25 -21
  299. data/stdlib/time/0/time.rbs +8 -6
  300. data/stdlib/timeout/0/timeout.rbs +63 -7
  301. data/stdlib/tsort/0/cyclic.rbs +3 -0
  302. data/stdlib/tsort/0/tsort.rbs +7 -6
  303. data/stdlib/uri/0/common.rbs +42 -20
  304. data/stdlib/uri/0/file.rbs +3 -3
  305. data/stdlib/uri/0/generic.rbs +26 -18
  306. data/stdlib/uri/0/http.rbs +2 -2
  307. data/stdlib/uri/0/ldap.rbs +2 -2
  308. data/stdlib/uri/0/mailto.rbs +3 -3
  309. data/stdlib/uri/0/rfc2396_parser.rbs +12 -12
  310. data/stdlib/zlib/0/deflate.rbs +4 -3
  311. data/stdlib/zlib/0/gzip_reader.rbs +6 -6
  312. data/stdlib/zlib/0/gzip_writer.rbs +14 -12
  313. data/stdlib/zlib/0/inflate.rbs +1 -1
  314. data/stdlib/zlib/0/need_dict.rbs +1 -1
  315. data/stdlib/zlib/0/zstream.rbs +1 -0
  316. metadata +121 -18
  317. data/ext/rbs_extension/lexer.c +0 -2728
  318. data/ext/rbs_extension/lexer.h +0 -179
  319. data/ext/rbs_extension/lexer.re +0 -147
  320. data/ext/rbs_extension/lexstate.c +0 -175
  321. data/ext/rbs_extension/location.c +0 -325
  322. data/ext/rbs_extension/location.h +0 -85
  323. data/ext/rbs_extension/parser.c +0 -2982
  324. data/ext/rbs_extension/parser.h +0 -18
  325. data/ext/rbs_extension/parserstate.c +0 -411
  326. data/ext/rbs_extension/parserstate.h +0 -163
  327. data/ext/rbs_extension/unescape.c +0 -32
  328. data/include/rbs/ruby_objs.h +0 -72
  329. data/src/constants.c +0 -153
  330. data/src/ruby_objs.c +0 -799
data/include/rbs/ast.h ADDED
@@ -0,0 +1,1022 @@
1
+ /*----------------------------------------------------------------------------*/
2
+ /* This file is generated by the templates/template.rb script and should not */
3
+ /* be modified manually. */
4
+ /* To change the template see */
5
+ /* templates/include/rbs/ast.h.erb */
6
+ /*----------------------------------------------------------------------------*/
7
+
8
+ #ifndef RBS__AST_H
9
+ #define RBS__AST_H
10
+
11
+ #include "rbs/util/rbs_allocator.h"
12
+ #include "rbs/util/rbs_constant_pool.h"
13
+ #include "string.h"
14
+ #include "location.h"
15
+
16
+ enum rbs_attribute_visibility {
17
+ RBS_ATTRIBUTE_VISIBILITY_UNSPECIFIED, /* unspecified (nil) */
18
+ RBS_ATTRIBUTE_VISIBILITY_PUBLIC, /* public (:public) */
19
+ RBS_ATTRIBUTE_VISIBILITY_PRIVATE, /* private (:private) */
20
+ };
21
+
22
+ enum rbs_attribute_kind {
23
+ RBS_ATTRIBUTE_KIND_INSTANCE, /* instance (:instance) */
24
+ RBS_ATTRIBUTE_KIND_SINGLETON, /* singleton (:singleton) */
25
+ };
26
+
27
+ enum rbs_alias_kind {
28
+ RBS_ALIAS_KIND_INSTANCE, /* instance (:instance) */
29
+ RBS_ALIAS_KIND_SINGLETON, /* singleton (:singleton) */
30
+ };
31
+
32
+ enum rbs_method_definition_kind {
33
+ RBS_METHOD_DEFINITION_KIND_INSTANCE, /* instance (:instance) */
34
+ RBS_METHOD_DEFINITION_KIND_SINGLETON, /* singleton (:singleton) */
35
+ RBS_METHOD_DEFINITION_KIND_SINGLETON_INSTANCE, /* singleton_instance (:singleton_instance) */
36
+ };
37
+
38
+ enum rbs_method_definition_visibility {
39
+ RBS_METHOD_DEFINITION_VISIBILITY_UNSPECIFIED, /* unspecified (nil) */
40
+ RBS_METHOD_DEFINITION_VISIBILITY_PUBLIC, /* public (:public) */
41
+ RBS_METHOD_DEFINITION_VISIBILITY_PRIVATE, /* private (:private) */
42
+ };
43
+
44
+ enum rbs_type_param_variance {
45
+ RBS_TYPE_PARAM_VARIANCE_INVARIANT, /* invariant (:invariant) */
46
+ RBS_TYPE_PARAM_VARIANCE_COVARIANT, /* covariant (:covariant) */
47
+ RBS_TYPE_PARAM_VARIANCE_CONTRAVARIANT, /* contravariant (:contravariant) */
48
+ };
49
+
50
+ enum rbs_attr_ivar_name_tag {
51
+ RBS_ATTR_IVAR_NAME_TAG_UNSPECIFIED, /* The attribute has inferred instance variable (nil) */
52
+ RBS_ATTR_IVAR_NAME_TAG_EMPTY, /* The attribute has no instance variable (false) */
53
+ RBS_ATTR_IVAR_NAME_TAG_NAME, /* The attribute has instance variable with the given name */
54
+ };
55
+
56
+ typedef struct rbs_attr_ivar_name {
57
+ enum rbs_attr_ivar_name_tag tag;
58
+ rbs_constant_id_t name; /* valid when tag == RBS_ATTR_IVAR_NAME_TAG_NAME */
59
+ } rbs_attr_ivar_name_t;
60
+
61
+ enum rbs_node_type {
62
+ RBS_AST_ANNOTATION = 1,
63
+ RBS_AST_BOOL = 2,
64
+ RBS_AST_COMMENT = 3,
65
+ RBS_AST_DECLARATIONS_CLASS = 4,
66
+ RBS_AST_DECLARATIONS_CLASS_SUPER = 5,
67
+ RBS_AST_DECLARATIONS_CLASS_ALIAS = 6,
68
+ RBS_AST_DECLARATIONS_CONSTANT = 7,
69
+ RBS_AST_DECLARATIONS_GLOBAL = 8,
70
+ RBS_AST_DECLARATIONS_INTERFACE = 9,
71
+ RBS_AST_DECLARATIONS_MODULE = 10,
72
+ RBS_AST_DECLARATIONS_MODULE_SELF = 11,
73
+ RBS_AST_DECLARATIONS_MODULE_ALIAS = 12,
74
+ RBS_AST_DECLARATIONS_TYPE_ALIAS = 13,
75
+ RBS_AST_DIRECTIVES_USE = 14,
76
+ RBS_AST_DIRECTIVES_USE_SINGLE_CLAUSE = 15,
77
+ RBS_AST_DIRECTIVES_USE_WILDCARD_CLAUSE = 16,
78
+ RBS_AST_INTEGER = 17,
79
+ RBS_AST_MEMBERS_ALIAS = 18,
80
+ RBS_AST_MEMBERS_ATTR_ACCESSOR = 19,
81
+ RBS_AST_MEMBERS_ATTR_READER = 20,
82
+ RBS_AST_MEMBERS_ATTR_WRITER = 21,
83
+ RBS_AST_MEMBERS_CLASS_INSTANCE_VARIABLE = 22,
84
+ RBS_AST_MEMBERS_CLASS_VARIABLE = 23,
85
+ RBS_AST_MEMBERS_EXTEND = 24,
86
+ RBS_AST_MEMBERS_INCLUDE = 25,
87
+ RBS_AST_MEMBERS_INSTANCE_VARIABLE = 26,
88
+ RBS_AST_MEMBERS_METHOD_DEFINITION = 27,
89
+ RBS_AST_MEMBERS_METHOD_DEFINITION_OVERLOAD = 28,
90
+ RBS_AST_MEMBERS_PREPEND = 29,
91
+ RBS_AST_MEMBERS_PRIVATE = 30,
92
+ RBS_AST_MEMBERS_PUBLIC = 31,
93
+ RBS_AST_RUBY_ANNOTATIONS_BLOCK_PARAM_TYPE_ANNOTATION = 32,
94
+ RBS_AST_RUBY_ANNOTATIONS_CLASS_ALIAS_ANNOTATION = 33,
95
+ RBS_AST_RUBY_ANNOTATIONS_COLON_METHOD_TYPE_ANNOTATION = 34,
96
+ RBS_AST_RUBY_ANNOTATIONS_DOUBLE_SPLAT_PARAM_TYPE_ANNOTATION = 35,
97
+ RBS_AST_RUBY_ANNOTATIONS_INSTANCE_VARIABLE_ANNOTATION = 36,
98
+ RBS_AST_RUBY_ANNOTATIONS_METHOD_TYPES_ANNOTATION = 37,
99
+ RBS_AST_RUBY_ANNOTATIONS_MODULE_ALIAS_ANNOTATION = 38,
100
+ RBS_AST_RUBY_ANNOTATIONS_NODE_TYPE_ASSERTION = 39,
101
+ RBS_AST_RUBY_ANNOTATIONS_PARAM_TYPE_ANNOTATION = 40,
102
+ RBS_AST_RUBY_ANNOTATIONS_RETURN_TYPE_ANNOTATION = 41,
103
+ RBS_AST_RUBY_ANNOTATIONS_SKIP_ANNOTATION = 42,
104
+ RBS_AST_RUBY_ANNOTATIONS_SPLAT_PARAM_TYPE_ANNOTATION = 43,
105
+ RBS_AST_RUBY_ANNOTATIONS_TYPE_APPLICATION_ANNOTATION = 44,
106
+ RBS_AST_STRING = 45,
107
+ RBS_AST_TYPE_PARAM = 46,
108
+ RBS_METHOD_TYPE = 47,
109
+ RBS_NAMESPACE = 48,
110
+ RBS_SIGNATURE = 49,
111
+ RBS_TYPE_NAME = 50,
112
+ RBS_TYPES_ALIAS = 51,
113
+ RBS_TYPES_BASES_ANY = 52,
114
+ RBS_TYPES_BASES_BOOL = 53,
115
+ RBS_TYPES_BASES_BOTTOM = 54,
116
+ RBS_TYPES_BASES_CLASS = 55,
117
+ RBS_TYPES_BASES_INSTANCE = 56,
118
+ RBS_TYPES_BASES_NIL = 57,
119
+ RBS_TYPES_BASES_SELF = 58,
120
+ RBS_TYPES_BASES_TOP = 59,
121
+ RBS_TYPES_BASES_VOID = 60,
122
+ RBS_TYPES_BLOCK = 61,
123
+ RBS_TYPES_CLASS_INSTANCE = 62,
124
+ RBS_TYPES_CLASS_SINGLETON = 63,
125
+ RBS_TYPES_FUNCTION = 64,
126
+ RBS_TYPES_FUNCTION_PARAM = 65,
127
+ RBS_TYPES_INTERFACE = 66,
128
+ RBS_TYPES_INTERSECTION = 67,
129
+ RBS_TYPES_LITERAL = 68,
130
+ RBS_TYPES_OPTIONAL = 69,
131
+ RBS_TYPES_PROC = 70,
132
+ RBS_TYPES_RECORD = 71,
133
+ RBS_TYPES_RECORD_FIELD_TYPE = 72,
134
+ RBS_TYPES_TUPLE = 73,
135
+ RBS_TYPES_UNION = 74,
136
+ RBS_TYPES_UNTYPED_FUNCTION = 75,
137
+ RBS_TYPES_VARIABLE = 76,
138
+ RBS_AST_SYMBOL,
139
+ };
140
+
141
+ typedef struct rbs_node {
142
+ enum rbs_node_type type;
143
+ rbs_location_range location;
144
+ } rbs_node_t;
145
+
146
+ const char *rbs_node_type_name(rbs_node_t *node);
147
+
148
+ /* rbs_node_list_node */
149
+
150
+ typedef struct rbs_node_list_node {
151
+ rbs_node_t *node;
152
+ struct rbs_node_list_node *next;
153
+ } rbs_node_list_node_t;
154
+
155
+ typedef struct rbs_node_list {
156
+ rbs_allocator_t *allocator;
157
+ rbs_node_list_node_t *head;
158
+ rbs_node_list_node_t *tail;
159
+ size_t length;
160
+ } rbs_node_list_t;
161
+
162
+ rbs_node_list_t *rbs_node_list_new(rbs_allocator_t *);
163
+
164
+ void rbs_node_list_append(rbs_node_list_t *list, rbs_node_t *node);
165
+
166
+ /* rbs_hash */
167
+
168
+ typedef struct rbs_hash_node {
169
+ rbs_node_t *key;
170
+ rbs_node_t *value;
171
+ struct rbs_hash_node *next;
172
+ } rbs_hash_node_t;
173
+
174
+ typedef struct rbs_hash {
175
+ rbs_allocator_t *allocator;
176
+ rbs_hash_node_t *head;
177
+ rbs_hash_node_t *tail;
178
+ size_t length;
179
+ } rbs_hash_t;
180
+
181
+ rbs_hash_t *rbs_hash_new(rbs_allocator_t *);
182
+
183
+ void rbs_hash_set(rbs_hash_t *hash, rbs_node_t *key, rbs_node_t *value);
184
+
185
+ rbs_hash_node_t *rbs_hash_find(rbs_hash_t *hash, rbs_node_t *key);
186
+
187
+ rbs_node_t *rbs_hash_get(rbs_hash_t *hash, rbs_node_t *key);
188
+
189
+ /* rbs_ast_node */
190
+
191
+ typedef struct rbs_ast_annotation {
192
+ rbs_node_t base;
193
+
194
+ rbs_string_t string;
195
+ } rbs_ast_annotation_t;
196
+
197
+ typedef struct rbs_ast_bool {
198
+ rbs_node_t base;
199
+
200
+ bool value;
201
+ } rbs_ast_bool_t;
202
+
203
+ typedef struct rbs_ast_comment {
204
+ rbs_node_t base;
205
+
206
+ rbs_string_t string;
207
+ } rbs_ast_comment_t;
208
+
209
+ typedef struct rbs_ast_declarations_class {
210
+ rbs_node_t base;
211
+
212
+ struct rbs_type_name *name;
213
+ struct rbs_node_list *type_params;
214
+ struct rbs_ast_declarations_class_super *super_class; /* Optional */
215
+ struct rbs_node_list *members;
216
+ struct rbs_node_list *annotations;
217
+ struct rbs_ast_comment *comment; /* Optional */
218
+
219
+ rbs_location_range keyword_range; /* Required */
220
+ rbs_location_range name_range; /* Required */
221
+ rbs_location_range end_range; /* Required */
222
+ rbs_location_range type_params_range; /* Optional */
223
+ rbs_location_range lt_range; /* Optional */
224
+ } rbs_ast_declarations_class_t;
225
+
226
+ typedef struct rbs_ast_declarations_class_super {
227
+ rbs_node_t base;
228
+
229
+ struct rbs_type_name *name;
230
+ struct rbs_node_list *args;
231
+
232
+ rbs_location_range name_range; /* Required */
233
+ rbs_location_range args_range; /* Optional */
234
+ } rbs_ast_declarations_class_super_t;
235
+
236
+ typedef struct rbs_ast_declarations_class_alias {
237
+ rbs_node_t base;
238
+
239
+ struct rbs_type_name *new_name;
240
+ struct rbs_type_name *old_name;
241
+ struct rbs_ast_comment *comment; /* Optional */
242
+ struct rbs_node_list *annotations;
243
+
244
+ rbs_location_range keyword_range; /* Required */
245
+ rbs_location_range new_name_range; /* Required */
246
+ rbs_location_range eq_range; /* Required */
247
+ rbs_location_range old_name_range; /* Required */
248
+ } rbs_ast_declarations_class_alias_t;
249
+
250
+ typedef struct rbs_ast_declarations_constant {
251
+ rbs_node_t base;
252
+
253
+ struct rbs_type_name *name;
254
+ struct rbs_node *type;
255
+ struct rbs_ast_comment *comment; /* Optional */
256
+ struct rbs_node_list *annotations;
257
+
258
+ rbs_location_range name_range; /* Required */
259
+ rbs_location_range colon_range; /* Required */
260
+ } rbs_ast_declarations_constant_t;
261
+
262
+ typedef struct rbs_ast_declarations_global {
263
+ rbs_node_t base;
264
+
265
+ struct rbs_ast_symbol *name;
266
+ struct rbs_node *type;
267
+ struct rbs_ast_comment *comment; /* Optional */
268
+ struct rbs_node_list *annotations;
269
+
270
+ rbs_location_range name_range; /* Required */
271
+ rbs_location_range colon_range; /* Required */
272
+ } rbs_ast_declarations_global_t;
273
+
274
+ typedef struct rbs_ast_declarations_interface {
275
+ rbs_node_t base;
276
+
277
+ struct rbs_type_name *name;
278
+ struct rbs_node_list *type_params;
279
+ struct rbs_node_list *members;
280
+ struct rbs_node_list *annotations;
281
+ struct rbs_ast_comment *comment; /* Optional */
282
+
283
+ rbs_location_range keyword_range; /* Required */
284
+ rbs_location_range name_range; /* Required */
285
+ rbs_location_range end_range; /* Required */
286
+ rbs_location_range type_params_range; /* Optional */
287
+ } rbs_ast_declarations_interface_t;
288
+
289
+ typedef struct rbs_ast_declarations_module {
290
+ rbs_node_t base;
291
+
292
+ struct rbs_type_name *name;
293
+ struct rbs_node_list *type_params;
294
+ struct rbs_node_list *self_types;
295
+ struct rbs_node_list *members;
296
+ struct rbs_node_list *annotations;
297
+ struct rbs_ast_comment *comment; /* Optional */
298
+
299
+ rbs_location_range keyword_range; /* Required */
300
+ rbs_location_range name_range; /* Required */
301
+ rbs_location_range end_range; /* Required */
302
+ rbs_location_range type_params_range; /* Optional */
303
+ rbs_location_range colon_range; /* Optional */
304
+ rbs_location_range self_types_range; /* Optional */
305
+ } rbs_ast_declarations_module_t;
306
+
307
+ typedef struct rbs_ast_declarations_module_self {
308
+ rbs_node_t base;
309
+
310
+ struct rbs_type_name *name;
311
+ struct rbs_node_list *args;
312
+
313
+ rbs_location_range name_range; /* Required */
314
+ rbs_location_range args_range; /* Optional */
315
+ } rbs_ast_declarations_module_self_t;
316
+
317
+ typedef struct rbs_ast_declarations_module_alias {
318
+ rbs_node_t base;
319
+
320
+ struct rbs_type_name *new_name;
321
+ struct rbs_type_name *old_name;
322
+ struct rbs_ast_comment *comment; /* Optional */
323
+ struct rbs_node_list *annotations;
324
+
325
+ rbs_location_range keyword_range; /* Required */
326
+ rbs_location_range new_name_range; /* Required */
327
+ rbs_location_range eq_range; /* Required */
328
+ rbs_location_range old_name_range; /* Required */
329
+ } rbs_ast_declarations_module_alias_t;
330
+
331
+ typedef struct rbs_ast_declarations_type_alias {
332
+ rbs_node_t base;
333
+
334
+ struct rbs_type_name *name;
335
+ struct rbs_node_list *type_params;
336
+ struct rbs_node *type;
337
+ struct rbs_node_list *annotations;
338
+ struct rbs_ast_comment *comment; /* Optional */
339
+
340
+ rbs_location_range keyword_range; /* Required */
341
+ rbs_location_range name_range; /* Required */
342
+ rbs_location_range eq_range; /* Required */
343
+ rbs_location_range type_params_range; /* Optional */
344
+ } rbs_ast_declarations_type_alias_t;
345
+
346
+ typedef struct rbs_ast_directives_use {
347
+ rbs_node_t base;
348
+
349
+ struct rbs_node_list *clauses;
350
+
351
+ rbs_location_range keyword_range; /* Required */
352
+ } rbs_ast_directives_use_t;
353
+
354
+ typedef struct rbs_ast_directives_use_single_clause {
355
+ rbs_node_t base;
356
+
357
+ struct rbs_type_name *type_name;
358
+ struct rbs_ast_symbol *new_name; /* Optional */
359
+
360
+ rbs_location_range type_name_range; /* Required */
361
+ rbs_location_range keyword_range; /* Optional */
362
+ rbs_location_range new_name_range; /* Optional */
363
+ } rbs_ast_directives_use_single_clause_t;
364
+
365
+ typedef struct rbs_ast_directives_use_wildcard_clause {
366
+ rbs_node_t base;
367
+
368
+ struct rbs_namespace *rbs_namespace;
369
+
370
+ rbs_location_range namespace_range; /* Required */
371
+ rbs_location_range star_range; /* Required */
372
+ } rbs_ast_directives_use_wildcard_clause_t;
373
+
374
+ typedef struct rbs_ast_integer {
375
+ rbs_node_t base;
376
+
377
+ rbs_string_t string_representation;
378
+ } rbs_ast_integer_t;
379
+
380
+ typedef struct rbs_ast_members_alias {
381
+ rbs_node_t base;
382
+
383
+ struct rbs_ast_symbol *new_name;
384
+ struct rbs_ast_symbol *old_name;
385
+ enum rbs_alias_kind kind;
386
+ struct rbs_node_list *annotations;
387
+ struct rbs_ast_comment *comment; /* Optional */
388
+
389
+ rbs_location_range keyword_range; /* Required */
390
+ rbs_location_range new_name_range; /* Required */
391
+ rbs_location_range old_name_range; /* Required */
392
+ rbs_location_range new_kind_range; /* Optional */
393
+ rbs_location_range old_kind_range; /* Optional */
394
+ } rbs_ast_members_alias_t;
395
+
396
+ typedef struct rbs_ast_members_attr_accessor {
397
+ rbs_node_t base;
398
+
399
+ struct rbs_ast_symbol *name;
400
+ struct rbs_node *type;
401
+ rbs_attr_ivar_name_t ivar_name;
402
+ enum rbs_attribute_kind kind;
403
+ struct rbs_node_list *annotations;
404
+ struct rbs_ast_comment *comment; /* Optional */
405
+ enum rbs_attribute_visibility visibility;
406
+
407
+ rbs_location_range keyword_range; /* Required */
408
+ rbs_location_range name_range; /* Required */
409
+ rbs_location_range colon_range; /* Required */
410
+ rbs_location_range kind_range; /* Optional */
411
+ rbs_location_range ivar_range; /* Optional */
412
+ rbs_location_range ivar_name_range; /* Optional */
413
+ rbs_location_range visibility_range; /* Optional */
414
+ } rbs_ast_members_attr_accessor_t;
415
+
416
+ typedef struct rbs_ast_members_attr_reader {
417
+ rbs_node_t base;
418
+
419
+ struct rbs_ast_symbol *name;
420
+ struct rbs_node *type;
421
+ rbs_attr_ivar_name_t ivar_name;
422
+ enum rbs_attribute_kind kind;
423
+ struct rbs_node_list *annotations;
424
+ struct rbs_ast_comment *comment; /* Optional */
425
+ enum rbs_attribute_visibility visibility;
426
+
427
+ rbs_location_range keyword_range; /* Required */
428
+ rbs_location_range name_range; /* Required */
429
+ rbs_location_range colon_range; /* Required */
430
+ rbs_location_range kind_range; /* Optional */
431
+ rbs_location_range ivar_range; /* Optional */
432
+ rbs_location_range ivar_name_range; /* Optional */
433
+ rbs_location_range visibility_range; /* Optional */
434
+ } rbs_ast_members_attr_reader_t;
435
+
436
+ typedef struct rbs_ast_members_attr_writer {
437
+ rbs_node_t base;
438
+
439
+ struct rbs_ast_symbol *name;
440
+ struct rbs_node *type;
441
+ rbs_attr_ivar_name_t ivar_name;
442
+ enum rbs_attribute_kind kind;
443
+ struct rbs_node_list *annotations;
444
+ struct rbs_ast_comment *comment; /* Optional */
445
+ enum rbs_attribute_visibility visibility;
446
+
447
+ rbs_location_range keyword_range; /* Required */
448
+ rbs_location_range name_range; /* Required */
449
+ rbs_location_range colon_range; /* Required */
450
+ rbs_location_range kind_range; /* Optional */
451
+ rbs_location_range ivar_range; /* Optional */
452
+ rbs_location_range ivar_name_range; /* Optional */
453
+ rbs_location_range visibility_range; /* Optional */
454
+ } rbs_ast_members_attr_writer_t;
455
+
456
+ typedef struct rbs_ast_members_class_instance_variable {
457
+ rbs_node_t base;
458
+
459
+ struct rbs_ast_symbol *name;
460
+ struct rbs_node *type;
461
+ struct rbs_ast_comment *comment; /* Optional */
462
+
463
+ rbs_location_range name_range; /* Required */
464
+ rbs_location_range colon_range; /* Required */
465
+ rbs_location_range kind_range; /* Optional */
466
+ } rbs_ast_members_class_instance_variable_t;
467
+
468
+ typedef struct rbs_ast_members_class_variable {
469
+ rbs_node_t base;
470
+
471
+ struct rbs_ast_symbol *name;
472
+ struct rbs_node *type;
473
+ struct rbs_ast_comment *comment; /* Optional */
474
+
475
+ rbs_location_range name_range; /* Required */
476
+ rbs_location_range colon_range; /* Required */
477
+ rbs_location_range kind_range; /* Optional */
478
+ } rbs_ast_members_class_variable_t;
479
+
480
+ typedef struct rbs_ast_members_extend {
481
+ rbs_node_t base;
482
+
483
+ struct rbs_type_name *name;
484
+ struct rbs_node_list *args;
485
+ struct rbs_node_list *annotations;
486
+ struct rbs_ast_comment *comment; /* Optional */
487
+
488
+ rbs_location_range name_range; /* Required */
489
+ rbs_location_range keyword_range; /* Required */
490
+ rbs_location_range args_range; /* Optional */
491
+ } rbs_ast_members_extend_t;
492
+
493
+ typedef struct rbs_ast_members_include {
494
+ rbs_node_t base;
495
+
496
+ struct rbs_type_name *name;
497
+ struct rbs_node_list *args;
498
+ struct rbs_node_list *annotations;
499
+ struct rbs_ast_comment *comment; /* Optional */
500
+
501
+ rbs_location_range name_range; /* Required */
502
+ rbs_location_range keyword_range; /* Required */
503
+ rbs_location_range args_range; /* Optional */
504
+ } rbs_ast_members_include_t;
505
+
506
+ typedef struct rbs_ast_members_instance_variable {
507
+ rbs_node_t base;
508
+
509
+ struct rbs_ast_symbol *name;
510
+ struct rbs_node *type;
511
+ struct rbs_ast_comment *comment; /* Optional */
512
+
513
+ rbs_location_range name_range; /* Required */
514
+ rbs_location_range colon_range; /* Required */
515
+ rbs_location_range kind_range; /* Optional */
516
+ } rbs_ast_members_instance_variable_t;
517
+
518
+ typedef struct rbs_ast_members_method_definition {
519
+ rbs_node_t base;
520
+
521
+ struct rbs_ast_symbol *name;
522
+ enum rbs_method_definition_kind kind;
523
+ struct rbs_node_list *overloads;
524
+ struct rbs_node_list *annotations;
525
+ struct rbs_ast_comment *comment; /* Optional */
526
+ bool overloading;
527
+ enum rbs_method_definition_visibility visibility;
528
+
529
+ rbs_location_range keyword_range; /* Required */
530
+ rbs_location_range name_range; /* Required */
531
+ rbs_location_range kind_range; /* Optional */
532
+ rbs_location_range overloading_range; /* Optional */
533
+ rbs_location_range visibility_range; /* Optional */
534
+ } rbs_ast_members_method_definition_t;
535
+
536
+ typedef struct rbs_ast_members_method_definition_overload {
537
+ rbs_node_t base;
538
+
539
+ struct rbs_node_list *annotations;
540
+ struct rbs_node *method_type;
541
+ } rbs_ast_members_method_definition_overload_t;
542
+
543
+ typedef struct rbs_ast_members_prepend {
544
+ rbs_node_t base;
545
+
546
+ struct rbs_type_name *name;
547
+ struct rbs_node_list *args;
548
+ struct rbs_node_list *annotations;
549
+ struct rbs_ast_comment *comment; /* Optional */
550
+
551
+ rbs_location_range name_range; /* Required */
552
+ rbs_location_range keyword_range; /* Required */
553
+ rbs_location_range args_range; /* Optional */
554
+ } rbs_ast_members_prepend_t;
555
+
556
+ typedef struct rbs_ast_members_private {
557
+ rbs_node_t base;
558
+
559
+ } rbs_ast_members_private_t;
560
+
561
+ typedef struct rbs_ast_members_public {
562
+ rbs_node_t base;
563
+
564
+ } rbs_ast_members_public_t;
565
+
566
+ typedef struct rbs_ast_ruby_annotations_block_param_type_annotation {
567
+ rbs_node_t base;
568
+
569
+ rbs_location_range prefix_location;
570
+ rbs_location_range ampersand_location;
571
+ rbs_location_range name_location; /* Optional */
572
+ rbs_location_range colon_location;
573
+ rbs_location_range question_location; /* Optional */
574
+ rbs_location_range type_location;
575
+ struct rbs_node *type_;
576
+ rbs_location_range comment_location; /* Optional */
577
+ } rbs_ast_ruby_annotations_block_param_type_annotation_t;
578
+
579
+ typedef struct rbs_ast_ruby_annotations_class_alias_annotation {
580
+ rbs_node_t base;
581
+
582
+ rbs_location_range prefix_location;
583
+ rbs_location_range keyword_location;
584
+ struct rbs_type_name *type_name;
585
+ rbs_location_range type_name_location; /* Optional */
586
+ } rbs_ast_ruby_annotations_class_alias_annotation_t;
587
+
588
+ typedef struct rbs_ast_ruby_annotations_colon_method_type_annotation {
589
+ rbs_node_t base;
590
+
591
+ rbs_location_range prefix_location;
592
+ struct rbs_node_list *annotations;
593
+ struct rbs_node *method_type;
594
+ } rbs_ast_ruby_annotations_colon_method_type_annotation_t;
595
+
596
+ typedef struct rbs_ast_ruby_annotations_double_splat_param_type_annotation {
597
+ rbs_node_t base;
598
+
599
+ rbs_location_range prefix_location;
600
+ rbs_location_range star2_location;
601
+ rbs_location_range name_location; /* Optional */
602
+ rbs_location_range colon_location;
603
+ struct rbs_node *param_type;
604
+ rbs_location_range comment_location; /* Optional */
605
+ } rbs_ast_ruby_annotations_double_splat_param_type_annotation_t;
606
+
607
+ typedef struct rbs_ast_ruby_annotations_instance_variable_annotation {
608
+ rbs_node_t base;
609
+
610
+ rbs_location_range prefix_location;
611
+ struct rbs_ast_symbol *ivar_name;
612
+ rbs_location_range ivar_name_location;
613
+ rbs_location_range colon_location;
614
+ struct rbs_node *type;
615
+ rbs_location_range comment_location; /* Optional */
616
+ } rbs_ast_ruby_annotations_instance_variable_annotation_t;
617
+
618
+ typedef struct rbs_ast_ruby_annotations_method_types_annotation {
619
+ rbs_node_t base;
620
+
621
+ rbs_location_range prefix_location;
622
+ struct rbs_node_list *overloads;
623
+ rbs_location_range_list_t *vertical_bar_locations;
624
+ rbs_location_range dot3_location; /* Optional */
625
+ } rbs_ast_ruby_annotations_method_types_annotation_t;
626
+
627
+ typedef struct rbs_ast_ruby_annotations_module_alias_annotation {
628
+ rbs_node_t base;
629
+
630
+ rbs_location_range prefix_location;
631
+ rbs_location_range keyword_location;
632
+ struct rbs_type_name *type_name;
633
+ rbs_location_range type_name_location; /* Optional */
634
+ } rbs_ast_ruby_annotations_module_alias_annotation_t;
635
+
636
+ typedef struct rbs_ast_ruby_annotations_node_type_assertion {
637
+ rbs_node_t base;
638
+
639
+ rbs_location_range prefix_location;
640
+ struct rbs_node *type;
641
+ } rbs_ast_ruby_annotations_node_type_assertion_t;
642
+
643
+ typedef struct rbs_ast_ruby_annotations_param_type_annotation {
644
+ rbs_node_t base;
645
+
646
+ rbs_location_range prefix_location;
647
+ rbs_location_range name_location;
648
+ rbs_location_range colon_location;
649
+ struct rbs_node *param_type;
650
+ rbs_location_range comment_location; /* Optional */
651
+ } rbs_ast_ruby_annotations_param_type_annotation_t;
652
+
653
+ typedef struct rbs_ast_ruby_annotations_return_type_annotation {
654
+ rbs_node_t base;
655
+
656
+ rbs_location_range prefix_location;
657
+ rbs_location_range return_location;
658
+ rbs_location_range colon_location;
659
+ struct rbs_node *return_type;
660
+ rbs_location_range comment_location; /* Optional */
661
+ } rbs_ast_ruby_annotations_return_type_annotation_t;
662
+
663
+ typedef struct rbs_ast_ruby_annotations_skip_annotation {
664
+ rbs_node_t base;
665
+
666
+ rbs_location_range prefix_location;
667
+ rbs_location_range skip_location;
668
+ rbs_location_range comment_location; /* Optional */
669
+ } rbs_ast_ruby_annotations_skip_annotation_t;
670
+
671
+ typedef struct rbs_ast_ruby_annotations_splat_param_type_annotation {
672
+ rbs_node_t base;
673
+
674
+ rbs_location_range prefix_location;
675
+ rbs_location_range star_location;
676
+ rbs_location_range name_location; /* Optional */
677
+ rbs_location_range colon_location;
678
+ struct rbs_node *param_type;
679
+ rbs_location_range comment_location; /* Optional */
680
+ } rbs_ast_ruby_annotations_splat_param_type_annotation_t;
681
+
682
+ typedef struct rbs_ast_ruby_annotations_type_application_annotation {
683
+ rbs_node_t base;
684
+
685
+ rbs_location_range prefix_location;
686
+ struct rbs_node_list *type_args;
687
+ rbs_location_range close_bracket_location;
688
+ rbs_location_range_list_t *comma_locations;
689
+ } rbs_ast_ruby_annotations_type_application_annotation_t;
690
+
691
+ typedef struct rbs_ast_string {
692
+ rbs_node_t base;
693
+
694
+ rbs_string_t string;
695
+ } rbs_ast_string_t;
696
+
697
+ typedef struct rbs_ast_type_param {
698
+ rbs_node_t base;
699
+
700
+ struct rbs_ast_symbol *name;
701
+ enum rbs_type_param_variance variance;
702
+ struct rbs_node *upper_bound; /* Optional */
703
+ struct rbs_node *lower_bound; /* Optional */
704
+ struct rbs_node *default_type; /* Optional */
705
+ bool unchecked;
706
+
707
+ rbs_location_range name_range; /* Required */
708
+ rbs_location_range variance_range; /* Optional */
709
+ rbs_location_range unchecked_range; /* Optional */
710
+ rbs_location_range upper_bound_range; /* Optional */
711
+ rbs_location_range lower_bound_range; /* Optional */
712
+ rbs_location_range default_range; /* Optional */
713
+ } rbs_ast_type_param_t;
714
+
715
+ typedef struct rbs_method_type {
716
+ rbs_node_t base;
717
+
718
+ struct rbs_node_list *type_params;
719
+ struct rbs_node *type;
720
+ struct rbs_types_block *block; /* Optional */
721
+
722
+ rbs_location_range type_range; /* Required */
723
+ rbs_location_range type_params_range; /* Optional */
724
+ } rbs_method_type_t;
725
+
726
+ typedef struct rbs_namespace {
727
+ rbs_node_t base;
728
+
729
+ struct rbs_node_list *path;
730
+ bool absolute;
731
+ } rbs_namespace_t;
732
+
733
+ typedef struct rbs_signature {
734
+ rbs_node_t base;
735
+
736
+ struct rbs_node_list *directives;
737
+ struct rbs_node_list *declarations;
738
+ } rbs_signature_t;
739
+
740
+ typedef struct rbs_type_name {
741
+ rbs_node_t base;
742
+
743
+ struct rbs_namespace *rbs_namespace;
744
+ struct rbs_ast_symbol *name;
745
+ } rbs_type_name_t;
746
+
747
+ typedef struct rbs_types_alias {
748
+ rbs_node_t base;
749
+
750
+ struct rbs_type_name *name;
751
+ struct rbs_node_list *args;
752
+
753
+ rbs_location_range name_range; /* Required */
754
+ rbs_location_range args_range; /* Optional */
755
+ } rbs_types_alias_t;
756
+
757
+ typedef struct rbs_types_bases_any {
758
+ rbs_node_t base;
759
+
760
+ bool todo;
761
+ } rbs_types_bases_any_t;
762
+
763
+ typedef struct rbs_types_bases_bool {
764
+ rbs_node_t base;
765
+
766
+ } rbs_types_bases_bool_t;
767
+
768
+ typedef struct rbs_types_bases_bottom {
769
+ rbs_node_t base;
770
+
771
+ } rbs_types_bases_bottom_t;
772
+
773
+ typedef struct rbs_types_bases_class {
774
+ rbs_node_t base;
775
+
776
+ } rbs_types_bases_class_t;
777
+
778
+ typedef struct rbs_types_bases_instance {
779
+ rbs_node_t base;
780
+
781
+ } rbs_types_bases_instance_t;
782
+
783
+ typedef struct rbs_types_bases_nil {
784
+ rbs_node_t base;
785
+
786
+ } rbs_types_bases_nil_t;
787
+
788
+ typedef struct rbs_types_bases_self {
789
+ rbs_node_t base;
790
+
791
+ } rbs_types_bases_self_t;
792
+
793
+ typedef struct rbs_types_bases_top {
794
+ rbs_node_t base;
795
+
796
+ } rbs_types_bases_top_t;
797
+
798
+ typedef struct rbs_types_bases_void {
799
+ rbs_node_t base;
800
+
801
+ } rbs_types_bases_void_t;
802
+
803
+ typedef struct rbs_types_block {
804
+ rbs_node_t base;
805
+
806
+ struct rbs_node *type;
807
+ bool required;
808
+ struct rbs_node *self_type; /* Optional */
809
+ } rbs_types_block_t;
810
+
811
+ typedef struct rbs_types_class_instance {
812
+ rbs_node_t base;
813
+
814
+ struct rbs_type_name *name;
815
+ struct rbs_node_list *args;
816
+
817
+ rbs_location_range name_range; /* Required */
818
+ rbs_location_range args_range; /* Optional */
819
+ } rbs_types_class_instance_t;
820
+
821
+ typedef struct rbs_types_class_singleton {
822
+ rbs_node_t base;
823
+
824
+ struct rbs_type_name *name;
825
+ struct rbs_node_list *args;
826
+
827
+ rbs_location_range name_range; /* Required */
828
+ rbs_location_range args_range; /* Optional */
829
+ } rbs_types_class_singleton_t;
830
+
831
+ typedef struct rbs_types_function {
832
+ rbs_node_t base;
833
+
834
+ struct rbs_node_list *required_positionals;
835
+ struct rbs_node_list *optional_positionals;
836
+ struct rbs_node *rest_positionals; /* Optional */
837
+ struct rbs_node_list *trailing_positionals;
838
+ struct rbs_hash *required_keywords;
839
+ struct rbs_hash *optional_keywords;
840
+ struct rbs_node *rest_keywords; /* Optional */
841
+ struct rbs_node *return_type;
842
+ } rbs_types_function_t;
843
+
844
+ typedef struct rbs_types_function_param {
845
+ rbs_node_t base;
846
+
847
+ struct rbs_node *type;
848
+ struct rbs_ast_symbol *name; /* Optional */
849
+
850
+ rbs_location_range name_range; /* Optional */
851
+ } rbs_types_function_param_t;
852
+
853
+ typedef struct rbs_types_interface {
854
+ rbs_node_t base;
855
+
856
+ struct rbs_type_name *name;
857
+ struct rbs_node_list *args;
858
+
859
+ rbs_location_range name_range; /* Required */
860
+ rbs_location_range args_range; /* Optional */
861
+ } rbs_types_interface_t;
862
+
863
+ typedef struct rbs_types_intersection {
864
+ rbs_node_t base;
865
+
866
+ struct rbs_node_list *types;
867
+ } rbs_types_intersection_t;
868
+
869
+ typedef struct rbs_types_literal {
870
+ rbs_node_t base;
871
+
872
+ struct rbs_node *literal;
873
+ } rbs_types_literal_t;
874
+
875
+ typedef struct rbs_types_optional {
876
+ rbs_node_t base;
877
+
878
+ struct rbs_node *type;
879
+ } rbs_types_optional_t;
880
+
881
+ typedef struct rbs_types_proc {
882
+ rbs_node_t base;
883
+
884
+ struct rbs_node *type;
885
+ struct rbs_types_block *block; /* Optional */
886
+ struct rbs_node *self_type; /* Optional */
887
+ } rbs_types_proc_t;
888
+
889
+ typedef struct rbs_types_record {
890
+ rbs_node_t base;
891
+
892
+ struct rbs_hash *all_fields;
893
+ } rbs_types_record_t;
894
+
895
+ typedef struct rbs_types_record_field_type {
896
+ rbs_node_t base;
897
+
898
+ struct rbs_node *type;
899
+ bool required;
900
+ } rbs_types_record_field_type_t;
901
+
902
+ typedef struct rbs_types_tuple {
903
+ rbs_node_t base;
904
+
905
+ struct rbs_node_list *types;
906
+ } rbs_types_tuple_t;
907
+
908
+ typedef struct rbs_types_union {
909
+ rbs_node_t base;
910
+
911
+ struct rbs_node_list *types;
912
+ } rbs_types_union_t;
913
+
914
+ typedef struct rbs_types_untyped_function {
915
+ rbs_node_t base;
916
+
917
+ struct rbs_node *return_type;
918
+ } rbs_types_untyped_function_t;
919
+
920
+ typedef struct rbs_types_variable {
921
+ rbs_node_t base;
922
+
923
+ struct rbs_ast_symbol *name;
924
+ } rbs_types_variable_t;
925
+
926
+ typedef union rbs_ast_ruby_annotations {
927
+ rbs_node_t base;
928
+ rbs_ast_ruby_annotations_colon_method_type_annotation_t colon_method_type_annotation;
929
+ rbs_ast_ruby_annotations_method_types_annotation_t method_types_annotation;
930
+ rbs_ast_ruby_annotations_node_type_assertion_t node_type_assertion;
931
+ rbs_ast_ruby_annotations_return_type_annotation_t return_type_annotation;
932
+ rbs_ast_ruby_annotations_skip_annotation_t skip_annotation;
933
+ rbs_ast_ruby_annotations_param_type_annotation_t param_type_annotation;
934
+ } rbs_ast_ruby_annotations_t;
935
+
936
+ /// `rbs_ast_symbol_t` models user-defined identifiers like class names, method names, etc.
937
+ /// These get stored in the parser's own constant pool, and get surfaced to Ruby as `Symbol`s.
938
+ typedef struct rbs_ast_symbol {
939
+ rbs_node_t base;
940
+ rbs_constant_id_t constant_id;
941
+ } rbs_ast_symbol_t;
942
+
943
+ rbs_ast_symbol_t *rbs_ast_symbol_new(rbs_allocator_t *, rbs_location_range, rbs_constant_pool_t *, rbs_constant_id_t);
944
+
945
+ rbs_ast_annotation_t *rbs_ast_annotation_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_string_t string);
946
+ rbs_ast_bool_t *rbs_ast_bool_new(rbs_allocator_t *allocator, rbs_location_range location, bool value);
947
+ rbs_ast_comment_t *rbs_ast_comment_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_string_t string);
948
+ rbs_ast_declarations_class_t *rbs_ast_declarations_class_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_list_t *type_params, rbs_ast_declarations_class_super_t *super_class, rbs_node_list_t *members, rbs_node_list_t *annotations, rbs_ast_comment_t *comment, rbs_location_range keyword_range, rbs_location_range name_range, rbs_location_range end_range);
949
+ rbs_ast_declarations_class_super_t *rbs_ast_declarations_class_super_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_list_t *args, rbs_location_range name_range);
950
+ rbs_ast_declarations_class_alias_t *rbs_ast_declarations_class_alias_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *new_name, rbs_type_name_t *old_name, rbs_ast_comment_t *comment, rbs_node_list_t *annotations, rbs_location_range keyword_range, rbs_location_range new_name_range, rbs_location_range eq_range, rbs_location_range old_name_range);
951
+ rbs_ast_declarations_constant_t *rbs_ast_declarations_constant_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_t *type, rbs_ast_comment_t *comment, rbs_node_list_t *annotations, rbs_location_range name_range, rbs_location_range colon_range);
952
+ rbs_ast_declarations_global_t *rbs_ast_declarations_global_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_ast_symbol_t *name, rbs_node_t *type, rbs_ast_comment_t *comment, rbs_node_list_t *annotations, rbs_location_range name_range, rbs_location_range colon_range);
953
+ rbs_ast_declarations_interface_t *rbs_ast_declarations_interface_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_list_t *type_params, rbs_node_list_t *members, rbs_node_list_t *annotations, rbs_ast_comment_t *comment, rbs_location_range keyword_range, rbs_location_range name_range, rbs_location_range end_range);
954
+ rbs_ast_declarations_module_t *rbs_ast_declarations_module_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_list_t *type_params, rbs_node_list_t *self_types, rbs_node_list_t *members, rbs_node_list_t *annotations, rbs_ast_comment_t *comment, rbs_location_range keyword_range, rbs_location_range name_range, rbs_location_range end_range);
955
+ rbs_ast_declarations_module_self_t *rbs_ast_declarations_module_self_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_list_t *args, rbs_location_range name_range);
956
+ rbs_ast_declarations_module_alias_t *rbs_ast_declarations_module_alias_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *new_name, rbs_type_name_t *old_name, rbs_ast_comment_t *comment, rbs_node_list_t *annotations, rbs_location_range keyword_range, rbs_location_range new_name_range, rbs_location_range eq_range, rbs_location_range old_name_range);
957
+ rbs_ast_declarations_type_alias_t *rbs_ast_declarations_type_alias_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_list_t *type_params, rbs_node_t *type, rbs_node_list_t *annotations, rbs_ast_comment_t *comment, rbs_location_range keyword_range, rbs_location_range name_range, rbs_location_range eq_range);
958
+ rbs_ast_directives_use_t *rbs_ast_directives_use_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_list_t *clauses, rbs_location_range keyword_range);
959
+ rbs_ast_directives_use_single_clause_t *rbs_ast_directives_use_single_clause_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *type_name, rbs_ast_symbol_t *new_name, rbs_location_range type_name_range);
960
+ rbs_ast_directives_use_wildcard_clause_t *rbs_ast_directives_use_wildcard_clause_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_namespace_t *rbs_namespace, rbs_location_range namespace_range, rbs_location_range star_range);
961
+ rbs_ast_integer_t *rbs_ast_integer_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_string_t string_representation);
962
+ rbs_ast_members_alias_t *rbs_ast_members_alias_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_ast_symbol_t *new_name, rbs_ast_symbol_t *old_name, enum rbs_alias_kind kind, rbs_node_list_t *annotations, rbs_ast_comment_t *comment, rbs_location_range keyword_range, rbs_location_range new_name_range, rbs_location_range old_name_range);
963
+ rbs_ast_members_attr_accessor_t *rbs_ast_members_attr_accessor_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_ast_symbol_t *name, rbs_node_t *type, rbs_attr_ivar_name_t ivar_name, enum rbs_attribute_kind kind, rbs_node_list_t *annotations, rbs_ast_comment_t *comment, enum rbs_attribute_visibility visibility, rbs_location_range keyword_range, rbs_location_range name_range, rbs_location_range colon_range);
964
+ rbs_ast_members_attr_reader_t *rbs_ast_members_attr_reader_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_ast_symbol_t *name, rbs_node_t *type, rbs_attr_ivar_name_t ivar_name, enum rbs_attribute_kind kind, rbs_node_list_t *annotations, rbs_ast_comment_t *comment, enum rbs_attribute_visibility visibility, rbs_location_range keyword_range, rbs_location_range name_range, rbs_location_range colon_range);
965
+ rbs_ast_members_attr_writer_t *rbs_ast_members_attr_writer_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_ast_symbol_t *name, rbs_node_t *type, rbs_attr_ivar_name_t ivar_name, enum rbs_attribute_kind kind, rbs_node_list_t *annotations, rbs_ast_comment_t *comment, enum rbs_attribute_visibility visibility, rbs_location_range keyword_range, rbs_location_range name_range, rbs_location_range colon_range);
966
+ rbs_ast_members_class_instance_variable_t *rbs_ast_members_class_instance_variable_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_ast_symbol_t *name, rbs_node_t *type, rbs_ast_comment_t *comment, rbs_location_range name_range, rbs_location_range colon_range);
967
+ rbs_ast_members_class_variable_t *rbs_ast_members_class_variable_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_ast_symbol_t *name, rbs_node_t *type, rbs_ast_comment_t *comment, rbs_location_range name_range, rbs_location_range colon_range);
968
+ rbs_ast_members_extend_t *rbs_ast_members_extend_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_list_t *args, rbs_node_list_t *annotations, rbs_ast_comment_t *comment, rbs_location_range name_range, rbs_location_range keyword_range);
969
+ rbs_ast_members_include_t *rbs_ast_members_include_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_list_t *args, rbs_node_list_t *annotations, rbs_ast_comment_t *comment, rbs_location_range name_range, rbs_location_range keyword_range);
970
+ rbs_ast_members_instance_variable_t *rbs_ast_members_instance_variable_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_ast_symbol_t *name, rbs_node_t *type, rbs_ast_comment_t *comment, rbs_location_range name_range, rbs_location_range colon_range);
971
+ rbs_ast_members_method_definition_t *rbs_ast_members_method_definition_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_ast_symbol_t *name, enum rbs_method_definition_kind kind, rbs_node_list_t *overloads, rbs_node_list_t *annotations, rbs_ast_comment_t *comment, bool overloading, enum rbs_method_definition_visibility visibility, rbs_location_range keyword_range, rbs_location_range name_range);
972
+ rbs_ast_members_method_definition_overload_t *rbs_ast_members_method_definition_overload_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_list_t *annotations, rbs_node_t *method_type);
973
+ rbs_ast_members_prepend_t *rbs_ast_members_prepend_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_list_t *args, rbs_node_list_t *annotations, rbs_ast_comment_t *comment, rbs_location_range name_range, rbs_location_range keyword_range);
974
+ rbs_ast_members_private_t *rbs_ast_members_private_new(rbs_allocator_t *allocator, rbs_location_range location);
975
+ rbs_ast_members_public_t *rbs_ast_members_public_new(rbs_allocator_t *allocator, rbs_location_range location);
976
+ rbs_ast_ruby_annotations_block_param_type_annotation_t *rbs_ast_ruby_annotations_block_param_type_annotation_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_location_range prefix_location, rbs_location_range ampersand_location, rbs_location_range name_location, rbs_location_range colon_location, rbs_location_range question_location, rbs_location_range type_location, rbs_node_t *type_, rbs_location_range comment_location);
977
+ rbs_ast_ruby_annotations_class_alias_annotation_t *rbs_ast_ruby_annotations_class_alias_annotation_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_location_range prefix_location, rbs_location_range keyword_location, rbs_type_name_t *type_name, rbs_location_range type_name_location);
978
+ rbs_ast_ruby_annotations_colon_method_type_annotation_t *rbs_ast_ruby_annotations_colon_method_type_annotation_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_location_range prefix_location, rbs_node_list_t *annotations, rbs_node_t *method_type);
979
+ rbs_ast_ruby_annotations_double_splat_param_type_annotation_t *rbs_ast_ruby_annotations_double_splat_param_type_annotation_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_location_range prefix_location, rbs_location_range star2_location, rbs_location_range name_location, rbs_location_range colon_location, rbs_node_t *param_type, rbs_location_range comment_location);
980
+ rbs_ast_ruby_annotations_instance_variable_annotation_t *rbs_ast_ruby_annotations_instance_variable_annotation_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_location_range prefix_location, rbs_ast_symbol_t *ivar_name, rbs_location_range ivar_name_location, rbs_location_range colon_location, rbs_node_t *type, rbs_location_range comment_location);
981
+ rbs_ast_ruby_annotations_method_types_annotation_t *rbs_ast_ruby_annotations_method_types_annotation_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_location_range prefix_location, rbs_node_list_t *overloads, rbs_location_range_list_t *vertical_bar_locations, rbs_location_range dot3_location);
982
+ rbs_ast_ruby_annotations_module_alias_annotation_t *rbs_ast_ruby_annotations_module_alias_annotation_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_location_range prefix_location, rbs_location_range keyword_location, rbs_type_name_t *type_name, rbs_location_range type_name_location);
983
+ rbs_ast_ruby_annotations_node_type_assertion_t *rbs_ast_ruby_annotations_node_type_assertion_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_location_range prefix_location, rbs_node_t *type);
984
+ rbs_ast_ruby_annotations_param_type_annotation_t *rbs_ast_ruby_annotations_param_type_annotation_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_location_range prefix_location, rbs_location_range name_location, rbs_location_range colon_location, rbs_node_t *param_type, rbs_location_range comment_location);
985
+ rbs_ast_ruby_annotations_return_type_annotation_t *rbs_ast_ruby_annotations_return_type_annotation_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_location_range prefix_location, rbs_location_range return_location, rbs_location_range colon_location, rbs_node_t *return_type, rbs_location_range comment_location);
986
+ rbs_ast_ruby_annotations_skip_annotation_t *rbs_ast_ruby_annotations_skip_annotation_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_location_range prefix_location, rbs_location_range skip_location, rbs_location_range comment_location);
987
+ rbs_ast_ruby_annotations_splat_param_type_annotation_t *rbs_ast_ruby_annotations_splat_param_type_annotation_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_location_range prefix_location, rbs_location_range star_location, rbs_location_range name_location, rbs_location_range colon_location, rbs_node_t *param_type, rbs_location_range comment_location);
988
+ rbs_ast_ruby_annotations_type_application_annotation_t *rbs_ast_ruby_annotations_type_application_annotation_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_location_range prefix_location, rbs_node_list_t *type_args, rbs_location_range close_bracket_location, rbs_location_range_list_t *comma_locations);
989
+ rbs_ast_string_t *rbs_ast_string_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_string_t string);
990
+ rbs_ast_type_param_t *rbs_ast_type_param_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_ast_symbol_t *name, enum rbs_type_param_variance variance, rbs_node_t *upper_bound, rbs_node_t *lower_bound, rbs_node_t *default_type, bool unchecked, rbs_location_range name_range);
991
+ rbs_method_type_t *rbs_method_type_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_list_t *type_params, rbs_node_t *type, rbs_types_block_t *block, rbs_location_range type_range);
992
+ rbs_namespace_t *rbs_namespace_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_list_t *path, bool absolute);
993
+ rbs_signature_t *rbs_signature_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_list_t *directives, rbs_node_list_t *declarations);
994
+ rbs_type_name_t *rbs_type_name_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_namespace_t *rbs_namespace, rbs_ast_symbol_t *name);
995
+ rbs_types_alias_t *rbs_types_alias_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_list_t *args, rbs_location_range name_range);
996
+ rbs_types_bases_any_t *rbs_types_bases_any_new(rbs_allocator_t *allocator, rbs_location_range location, bool todo);
997
+ rbs_types_bases_bool_t *rbs_types_bases_bool_new(rbs_allocator_t *allocator, rbs_location_range location);
998
+ rbs_types_bases_bottom_t *rbs_types_bases_bottom_new(rbs_allocator_t *allocator, rbs_location_range location);
999
+ rbs_types_bases_class_t *rbs_types_bases_class_new(rbs_allocator_t *allocator, rbs_location_range location);
1000
+ rbs_types_bases_instance_t *rbs_types_bases_instance_new(rbs_allocator_t *allocator, rbs_location_range location);
1001
+ rbs_types_bases_nil_t *rbs_types_bases_nil_new(rbs_allocator_t *allocator, rbs_location_range location);
1002
+ rbs_types_bases_self_t *rbs_types_bases_self_new(rbs_allocator_t *allocator, rbs_location_range location);
1003
+ rbs_types_bases_top_t *rbs_types_bases_top_new(rbs_allocator_t *allocator, rbs_location_range location);
1004
+ rbs_types_bases_void_t *rbs_types_bases_void_new(rbs_allocator_t *allocator, rbs_location_range location);
1005
+ rbs_types_block_t *rbs_types_block_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_t *type, bool required, rbs_node_t *self_type);
1006
+ rbs_types_class_instance_t *rbs_types_class_instance_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_list_t *args, rbs_location_range name_range);
1007
+ rbs_types_class_singleton_t *rbs_types_class_singleton_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_list_t *args, rbs_location_range name_range);
1008
+ rbs_types_function_t *rbs_types_function_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_list_t *required_positionals, rbs_node_list_t *optional_positionals, rbs_node_t *rest_positionals, rbs_node_list_t *trailing_positionals, rbs_hash_t *required_keywords, rbs_hash_t *optional_keywords, rbs_node_t *rest_keywords, rbs_node_t *return_type);
1009
+ rbs_types_function_param_t *rbs_types_function_param_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_t *type, rbs_ast_symbol_t *name);
1010
+ rbs_types_interface_t *rbs_types_interface_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_type_name_t *name, rbs_node_list_t *args, rbs_location_range name_range);
1011
+ rbs_types_intersection_t *rbs_types_intersection_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_list_t *types);
1012
+ rbs_types_literal_t *rbs_types_literal_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_t *literal);
1013
+ rbs_types_optional_t *rbs_types_optional_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_t *type);
1014
+ rbs_types_proc_t *rbs_types_proc_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_t *type, rbs_types_block_t *block, rbs_node_t *self_type);
1015
+ rbs_types_record_t *rbs_types_record_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_hash_t *all_fields);
1016
+ rbs_types_record_field_type_t *rbs_types_record_field_type_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_t *type, bool required);
1017
+ rbs_types_tuple_t *rbs_types_tuple_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_list_t *types);
1018
+ rbs_types_union_t *rbs_types_union_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_list_t *types);
1019
+ rbs_types_untyped_function_t *rbs_types_untyped_function_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_node_t *return_type);
1020
+ rbs_types_variable_t *rbs_types_variable_new(rbs_allocator_t *allocator, rbs_location_range location, rbs_ast_symbol_t *name);
1021
+
1022
+ #endif