rbs 4.0.0.dev.4 → 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.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +14 -14
- data/.github/workflows/bundle-update.yml +60 -0
- data/.github/workflows/c-check.yml +18 -11
- data/.github/workflows/comments.yml +5 -3
- data/.github/workflows/dependabot.yml +2 -2
- data/.github/workflows/ruby.yml +27 -34
- data/.github/workflows/rust.yml +95 -0
- data/.github/workflows/typecheck.yml +2 -2
- data/.github/workflows/windows.yml +2 -2
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +323 -0
- data/README.md +1 -1
- data/Rakefile +43 -33
- data/Steepfile +1 -0
- data/config.yml +426 -24
- data/core/array.rbs +307 -227
- data/core/basic_object.rbs +9 -8
- data/core/binding.rbs +0 -2
- data/core/builtin.rbs +2 -2
- data/core/class.rbs +6 -5
- data/core/comparable.rbs +55 -34
- data/core/complex.rbs +104 -78
- data/core/dir.rbs +61 -49
- data/core/encoding.rbs +12 -15
- data/core/enumerable.rbs +179 -87
- data/core/enumerator/arithmetic_sequence.rbs +70 -0
- data/core/enumerator.rbs +65 -2
- data/core/errno.rbs +11 -2
- data/core/errors.rbs +58 -29
- data/core/exception.rbs +13 -13
- data/core/fiber.rbs +74 -54
- data/core/file.rbs +280 -177
- data/core/file_test.rbs +3 -3
- data/core/float.rbs +257 -92
- data/core/gc.rbs +425 -281
- data/core/hash.rbs +1045 -739
- data/core/integer.rbs +135 -137
- data/core/io/buffer.rbs +53 -42
- data/core/io/wait.rbs +13 -35
- data/core/io.rbs +192 -144
- data/core/kernel.rbs +216 -155
- data/core/marshal.rbs +4 -4
- data/core/match_data.rbs +15 -13
- data/core/math.rbs +107 -66
- data/core/method.rbs +69 -33
- data/core/module.rbs +244 -106
- data/core/nil_class.rbs +7 -6
- data/core/numeric.rbs +74 -63
- data/core/object.rbs +9 -11
- data/core/object_space.rbs +30 -23
- data/core/pathname.rbs +1322 -0
- data/core/proc.rbs +95 -58
- data/core/process.rbs +222 -202
- data/core/ractor.rbs +371 -515
- data/core/random.rbs +21 -3
- data/core/range.rbs +159 -57
- data/core/rational.rbs +60 -89
- data/core/rbs/unnamed/argf.rbs +60 -53
- data/core/rbs/unnamed/env_class.rbs +19 -14
- data/core/rbs/unnamed/main_class.rbs +123 -0
- data/core/rbs/unnamed/random.rbs +11 -118
- data/core/regexp.rbs +258 -214
- data/core/ruby.rbs +53 -0
- data/core/ruby_vm.rbs +38 -34
- data/core/rubygems/config_file.rbs +5 -5
- data/core/rubygems/errors.rbs +4 -71
- data/core/rubygems/requirement.rbs +5 -5
- data/core/rubygems/rubygems.rbs +16 -82
- data/core/rubygems/version.rbs +2 -3
- data/core/set.rbs +490 -360
- data/core/signal.rbs +26 -16
- data/core/string.rbs +3234 -1285
- data/core/struct.rbs +27 -26
- data/core/symbol.rbs +41 -34
- data/core/thread.rbs +135 -67
- data/core/time.rbs +81 -50
- data/core/trace_point.rbs +41 -35
- data/core/true_class.rbs +2 -2
- data/core/unbound_method.rbs +24 -16
- data/core/warning.rbs +7 -7
- data/docs/aliases.md +79 -0
- data/docs/collection.md +3 -3
- data/docs/config.md +171 -0
- data/docs/encoding.md +56 -0
- data/docs/gem.md +0 -1
- data/docs/inline.md +576 -0
- data/docs/sigs.md +3 -3
- data/docs/syntax.md +46 -16
- data/docs/type_fingerprint.md +21 -0
- data/exe/rbs +1 -1
- data/ext/rbs_extension/ast_translation.c +544 -116
- data/ext/rbs_extension/ast_translation.h +3 -0
- data/ext/rbs_extension/class_constants.c +16 -2
- data/ext/rbs_extension/class_constants.h +8 -0
- data/ext/rbs_extension/extconf.rb +5 -1
- data/ext/rbs_extension/legacy_location.c +33 -56
- data/ext/rbs_extension/legacy_location.h +37 -0
- data/ext/rbs_extension/main.c +44 -35
- data/include/rbs/ast.h +448 -173
- data/include/rbs/defines.h +27 -0
- data/include/rbs/lexer.h +30 -11
- data/include/rbs/location.h +25 -44
- data/include/rbs/parser.h +6 -6
- data/include/rbs/string.h +0 -2
- data/include/rbs/util/rbs_allocator.h +34 -13
- data/include/rbs/util/rbs_assert.h +12 -1
- data/include/rbs/util/rbs_constant_pool.h +0 -3
- data/include/rbs/util/rbs_encoding.h +2 -0
- data/include/rbs/util/rbs_unescape.h +2 -1
- data/include/rbs.h +8 -0
- data/lib/rbs/ast/annotation.rb +1 -1
- data/lib/rbs/ast/comment.rb +1 -1
- data/lib/rbs/ast/declarations.rb +10 -10
- data/lib/rbs/ast/members.rb +14 -14
- data/lib/rbs/ast/ruby/annotations.rb +293 -3
- data/lib/rbs/ast/ruby/comment_block.rb +24 -0
- data/lib/rbs/ast/ruby/declarations.rb +198 -3
- data/lib/rbs/ast/ruby/helpers/constant_helper.rb +4 -0
- data/lib/rbs/ast/ruby/members.rb +532 -22
- data/lib/rbs/ast/type_param.rb +24 -4
- data/lib/rbs/buffer.rb +20 -15
- data/lib/rbs/cli/diff.rb +16 -15
- data/lib/rbs/cli/validate.rb +38 -106
- data/lib/rbs/cli.rb +52 -19
- data/lib/rbs/collection/config/lockfile_generator.rb +14 -2
- data/lib/rbs/collection/sources/git.rb +1 -0
- data/lib/rbs/definition.rb +1 -1
- data/lib/rbs/definition_builder/ancestor_builder.rb +62 -9
- data/lib/rbs/definition_builder/method_builder.rb +20 -0
- data/lib/rbs/definition_builder.rb +147 -25
- data/lib/rbs/diff.rb +7 -1
- data/lib/rbs/environment.rb +227 -74
- data/lib/rbs/environment_loader.rb +0 -6
- data/lib/rbs/errors.rb +27 -18
- data/lib/rbs/inline_parser.rb +342 -6
- data/lib/rbs/location_aux.rb +1 -1
- data/lib/rbs/locator.rb +5 -1
- data/lib/rbs/method_type.rb +5 -3
- data/lib/rbs/parser_aux.rb +20 -7
- data/lib/rbs/prototype/helpers.rb +57 -0
- data/lib/rbs/prototype/rb.rb +3 -28
- data/lib/rbs/prototype/rbi.rb +3 -20
- data/lib/rbs/prototype/runtime.rb +8 -0
- data/lib/rbs/resolver/constant_resolver.rb +2 -2
- data/lib/rbs/resolver/type_name_resolver.rb +116 -38
- data/lib/rbs/subtractor.rb +3 -1
- data/lib/rbs/test/type_check.rb +19 -2
- data/lib/rbs/type_name.rb +1 -1
- data/lib/rbs/types.rb +88 -78
- data/lib/rbs/unit_test/type_assertions.rb +35 -8
- data/lib/rbs/validator.rb +2 -2
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs.rb +1 -2
- data/lib/rdoc/discover.rb +1 -1
- data/lib/rdoc_plugin/parser.rb +1 -1
- data/rbs.gemspec +4 -3
- data/rust/.gitignore +1 -0
- data/rust/Cargo.lock +378 -0
- data/rust/Cargo.toml +7 -0
- data/rust/ruby-rbs/Cargo.toml +22 -0
- data/rust/ruby-rbs/build.rs +764 -0
- data/rust/ruby-rbs/examples/locations.rs +60 -0
- data/rust/ruby-rbs/src/lib.rs +1 -0
- data/rust/ruby-rbs/src/node/mod.rs +742 -0
- data/rust/ruby-rbs/tests/sanity.rs +47 -0
- data/rust/ruby-rbs/vendor/rbs/config.yml +1 -0
- data/rust/ruby-rbs-sys/Cargo.toml +23 -0
- data/rust/ruby-rbs-sys/build.rs +204 -0
- data/rust/ruby-rbs-sys/src/lib.rs +50 -0
- data/rust/ruby-rbs-sys/vendor/rbs/include +1 -0
- data/rust/ruby-rbs-sys/vendor/rbs/src +1 -0
- data/rust/ruby-rbs-sys/wrapper.h +1 -0
- data/schema/typeParam.json +17 -1
- data/sig/ast/ruby/annotations.rbs +315 -4
- data/sig/ast/ruby/comment_block.rbs +8 -0
- data/sig/ast/ruby/declarations.rbs +102 -4
- data/sig/ast/ruby/members.rbs +108 -2
- data/sig/cli/diff.rbs +5 -11
- data/sig/cli/validate.rbs +12 -8
- data/sig/cli.rbs +18 -18
- data/sig/definition.rbs +6 -1
- data/sig/definition_builder.rbs +2 -0
- data/sig/environment.rbs +70 -12
- data/sig/errors.rbs +13 -14
- data/sig/inline_parser.rbs +39 -2
- data/sig/locator.rbs +0 -2
- data/sig/manifest.yaml +0 -1
- data/sig/method_builder.rbs +3 -1
- data/sig/parser.rbs +31 -13
- data/sig/prototype/helpers.rbs +2 -0
- data/sig/resolver/type_name_resolver.rbs +35 -7
- data/sig/source.rbs +3 -3
- data/sig/type_param.rbs +13 -8
- data/sig/types.rbs +6 -7
- data/sig/unit_test/spy.rbs +0 -8
- data/sig/unit_test/type_assertions.rbs +11 -0
- data/src/ast.c +410 -153
- data/src/lexer.c +1392 -1313
- data/src/lexer.re +3 -0
- data/src/lexstate.c +58 -37
- data/src/location.c +8 -48
- data/src/parser.c +977 -516
- data/src/string.c +0 -48
- data/src/util/rbs_allocator.c +89 -71
- data/src/util/rbs_assert.c +1 -1
- data/src/util/rbs_buffer.c +2 -2
- data/src/util/rbs_constant_pool.c +10 -14
- data/src/util/rbs_encoding.c +4 -8
- data/src/util/rbs_unescape.c +56 -20
- data/stdlib/bigdecimal/0/big_decimal.rbs +116 -98
- data/stdlib/bigdecimal-math/0/big_math.rbs +169 -8
- data/stdlib/cgi/0/core.rbs +9 -393
- data/stdlib/cgi/0/manifest.yaml +1 -0
- data/stdlib/cgi-escape/0/escape.rbs +171 -0
- data/stdlib/coverage/0/coverage.rbs +7 -4
- data/stdlib/date/0/date.rbs +92 -79
- data/stdlib/date/0/date_time.rbs +25 -24
- data/stdlib/delegate/0/delegator.rbs +10 -7
- data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
- data/stdlib/digest/0/digest.rbs +110 -0
- data/stdlib/erb/0/erb.rbs +748 -347
- data/stdlib/etc/0/etc.rbs +55 -50
- data/stdlib/fileutils/0/fileutils.rbs +158 -139
- data/stdlib/forwardable/0/forwardable.rbs +13 -10
- data/stdlib/io-console/0/io-console.rbs +2 -2
- data/stdlib/json/0/json.rbs +217 -136
- data/stdlib/monitor/0/monitor.rbs +3 -3
- data/stdlib/net-http/0/net-http.rbs +162 -134
- data/stdlib/objspace/0/objspace.rbs +17 -34
- data/stdlib/open-uri/0/open-uri.rbs +48 -8
- data/stdlib/open3/0/open3.rbs +469 -10
- data/stdlib/openssl/0/openssl.rbs +475 -357
- data/stdlib/optparse/0/optparse.rbs +26 -17
- data/stdlib/pathname/0/pathname.rbs +11 -1381
- data/stdlib/pp/0/pp.rbs +9 -8
- data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
- data/stdlib/pstore/0/pstore.rbs +35 -30
- data/stdlib/psych/0/psych.rbs +65 -12
- data/stdlib/psych/0/store.rbs +2 -4
- data/stdlib/pty/0/pty.rbs +9 -6
- data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
- data/stdlib/rdoc/0/code_object.rbs +2 -1
- data/stdlib/rdoc/0/parser.rbs +1 -1
- data/stdlib/rdoc/0/rdoc.rbs +1 -1
- data/stdlib/rdoc/0/store.rbs +1 -1
- data/stdlib/resolv/0/resolv.rbs +25 -68
- data/stdlib/ripper/0/ripper.rbs +22 -19
- data/stdlib/securerandom/0/manifest.yaml +2 -0
- data/stdlib/securerandom/0/securerandom.rbs +7 -20
- data/stdlib/shellwords/0/shellwords.rbs +2 -2
- data/stdlib/singleton/0/singleton.rbs +3 -0
- data/stdlib/socket/0/addrinfo.rbs +7 -7
- data/stdlib/socket/0/basic_socket.rbs +3 -3
- data/stdlib/socket/0/ip_socket.rbs +10 -8
- data/stdlib/socket/0/socket.rbs +23 -10
- data/stdlib/socket/0/tcp_server.rbs +1 -1
- data/stdlib/socket/0/tcp_socket.rbs +11 -3
- data/stdlib/socket/0/udp_socket.rbs +1 -1
- data/stdlib/socket/0/unix_server.rbs +1 -1
- data/stdlib/stringio/0/stringio.rbs +1177 -85
- data/stdlib/strscan/0/string_scanner.rbs +27 -25
- data/stdlib/tempfile/0/tempfile.rbs +25 -21
- data/stdlib/time/0/time.rbs +8 -6
- data/stdlib/timeout/0/timeout.rbs +63 -7
- data/stdlib/tsort/0/cyclic.rbs +3 -0
- data/stdlib/tsort/0/tsort.rbs +7 -6
- data/stdlib/uri/0/common.rbs +42 -20
- data/stdlib/uri/0/file.rbs +3 -3
- data/stdlib/uri/0/generic.rbs +26 -18
- data/stdlib/uri/0/http.rbs +2 -2
- data/stdlib/uri/0/ldap.rbs +2 -2
- data/stdlib/uri/0/mailto.rbs +3 -3
- data/stdlib/uri/0/rfc2396_parser.rbs +12 -12
- data/stdlib/zlib/0/deflate.rbs +4 -3
- data/stdlib/zlib/0/gzip_reader.rbs +6 -6
- data/stdlib/zlib/0/gzip_writer.rbs +14 -12
- data/stdlib/zlib/0/inflate.rbs +1 -1
- data/stdlib/zlib/0/need_dict.rbs +1 -1
- data/stdlib/zlib/0/zstream.rbs +1 -0
- metadata +50 -6
|
@@ -11,7 +11,12 @@
|
|
|
11
11
|
#include "rbs_string_bridging.h"
|
|
12
12
|
#include "legacy_location.h"
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
VALUE EMPTY_ARRAY;
|
|
15
|
+
VALUE EMPTY_HASH;
|
|
16
|
+
|
|
17
|
+
#define RBS_LOCATION_CHILDREN_SIZE(cap) (sizeof(rbs_location_children) + sizeof(rbs_location_entry) * ((cap) - 1))
|
|
18
|
+
#define RBS_LOCATION_REQUIRED_P(loc, i) ((loc)->children->required_p & (1 << (i)))
|
|
19
|
+
#define RBS_LOCATION_OPTIONAL_P(loc, i) (!RBS_LOCATION_REQUIRED_P((loc), (i)))
|
|
15
20
|
|
|
16
21
|
rbs_translation_context_t rbs_translation_context_create(rbs_constant_pool_t *constant_pool, VALUE buffer, rb_encoding *ruby_encoding) {
|
|
17
22
|
return (rbs_translation_context_t) {
|
|
@@ -32,6 +37,10 @@ VALUE rbs_node_list_to_ruby_array(rbs_translation_context_t ctx, rbs_node_list_t
|
|
|
32
37
|
}
|
|
33
38
|
|
|
34
39
|
VALUE rbs_hash_to_ruby_hash(rbs_translation_context_t ctx, rbs_hash_t *rbs_hash) {
|
|
40
|
+
if (!rbs_hash->head) {
|
|
41
|
+
return EMPTY_HASH;
|
|
42
|
+
}
|
|
43
|
+
|
|
35
44
|
VALUE ruby_hash = rb_hash_new();
|
|
36
45
|
|
|
37
46
|
for (rbs_hash_node_t *n = rbs_hash->head; n != NULL; n = n->next) {
|
|
@@ -43,34 +52,118 @@ VALUE rbs_hash_to_ruby_hash(rbs_translation_context_t ctx, rbs_hash_t *rbs_hash)
|
|
|
43
52
|
return ruby_hash;
|
|
44
53
|
}
|
|
45
54
|
|
|
46
|
-
VALUE
|
|
47
|
-
if (
|
|
55
|
+
VALUE rbs_location_range_to_ruby_location(rbs_translation_context_t ctx, rbs_location_range range) {
|
|
56
|
+
if (RBS_LOCATION_NULL_RANGE_P(range)) {
|
|
48
57
|
return Qnil;
|
|
49
58
|
}
|
|
50
59
|
|
|
51
|
-
|
|
52
|
-
|
|
60
|
+
return rbs_new_location2(ctx.buffer, range.start_char, range.end_char);
|
|
61
|
+
}
|
|
53
62
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
63
|
+
VALUE rbs_location_range_list_to_ruby_array(rbs_translation_context_t ctx, rbs_location_range_list_t *list) {
|
|
64
|
+
if (list == NULL) {
|
|
65
|
+
return EMPTY_ARRAY;
|
|
57
66
|
}
|
|
58
67
|
|
|
59
|
-
|
|
68
|
+
VALUE ruby_array = rb_ary_new();
|
|
69
|
+
|
|
70
|
+
for (rbs_location_range_list_node_t *n = list->head; n != NULL; n = n->next) {
|
|
71
|
+
rb_ary_push(ruby_array, rbs_location_range_to_ruby_location(ctx, n->range));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return ruby_array;
|
|
60
75
|
}
|
|
61
76
|
|
|
62
|
-
VALUE
|
|
63
|
-
|
|
77
|
+
VALUE rbs_attr_ivar_name_to_ruby(rbs_translation_context_t ctx, rbs_attr_ivar_name_t ivar_name) {
|
|
78
|
+
switch (ivar_name.tag) {
|
|
79
|
+
case RBS_ATTR_IVAR_NAME_TAG_NAME: {
|
|
80
|
+
rbs_constant_t *constant = rbs_constant_pool_id_to_constant(ctx.constant_pool, ivar_name.name);
|
|
81
|
+
assert(constant != NULL && "constant is NULL");
|
|
82
|
+
assert(constant->start != NULL && "constant->start is NULL");
|
|
64
83
|
|
|
65
|
-
|
|
66
|
-
return ruby_array;
|
|
84
|
+
return ID2SYM(rb_intern3((const char *) constant->start, constant->length, ctx.encoding));
|
|
67
85
|
}
|
|
86
|
+
case RBS_ATTR_IVAR_NAME_TAG_UNSPECIFIED:
|
|
87
|
+
return Qnil;
|
|
88
|
+
case RBS_ATTR_IVAR_NAME_TAG_EMPTY:
|
|
89
|
+
return Qfalse;
|
|
90
|
+
default:
|
|
91
|
+
rb_fatal("unknown enum rbs_attr_ivar_name_tag ivar_name.tag: %d", ivar_name.tag);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
68
94
|
|
|
69
|
-
|
|
70
|
-
|
|
95
|
+
VALUE rbs_attribute_visibility_to_ruby(enum rbs_attribute_visibility value) {
|
|
96
|
+
switch (value) {
|
|
97
|
+
case RBS_ATTRIBUTE_VISIBILITY_UNSPECIFIED:
|
|
98
|
+
return Qnil;
|
|
99
|
+
case RBS_ATTRIBUTE_VISIBILITY_PUBLIC:
|
|
100
|
+
return rb_id2sym(rb_intern("public"));
|
|
101
|
+
case RBS_ATTRIBUTE_VISIBILITY_PRIVATE:
|
|
102
|
+
return rb_id2sym(rb_intern("private"));
|
|
103
|
+
default:
|
|
104
|
+
rb_fatal("unknown enum rbs_attribute_visibility value: %d", value);
|
|
71
105
|
}
|
|
106
|
+
}
|
|
72
107
|
|
|
73
|
-
|
|
108
|
+
VALUE rbs_attribute_kind_to_ruby(enum rbs_attribute_kind value) {
|
|
109
|
+
switch (value) {
|
|
110
|
+
case RBS_ATTRIBUTE_KIND_INSTANCE:
|
|
111
|
+
return rb_id2sym(rb_intern("instance"));
|
|
112
|
+
case RBS_ATTRIBUTE_KIND_SINGLETON:
|
|
113
|
+
return rb_id2sym(rb_intern("singleton"));
|
|
114
|
+
default:
|
|
115
|
+
rb_fatal("unknown enum rbs_attribute_kind value: %d", value);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
VALUE rbs_alias_kind_to_ruby(enum rbs_alias_kind value) {
|
|
120
|
+
switch (value) {
|
|
121
|
+
case RBS_ALIAS_KIND_INSTANCE:
|
|
122
|
+
return rb_id2sym(rb_intern("instance"));
|
|
123
|
+
case RBS_ALIAS_KIND_SINGLETON:
|
|
124
|
+
return rb_id2sym(rb_intern("singleton"));
|
|
125
|
+
default:
|
|
126
|
+
rb_fatal("unknown enum rbs_alias_kind value: %d", value);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
VALUE rbs_method_definition_kind_to_ruby(enum rbs_method_definition_kind value) {
|
|
131
|
+
switch (value) {
|
|
132
|
+
case RBS_METHOD_DEFINITION_KIND_INSTANCE:
|
|
133
|
+
return rb_id2sym(rb_intern("instance"));
|
|
134
|
+
case RBS_METHOD_DEFINITION_KIND_SINGLETON:
|
|
135
|
+
return rb_id2sym(rb_intern("singleton"));
|
|
136
|
+
case RBS_METHOD_DEFINITION_KIND_SINGLETON_INSTANCE:
|
|
137
|
+
return rb_id2sym(rb_intern("singleton_instance"));
|
|
138
|
+
default:
|
|
139
|
+
rb_fatal("unknown enum rbs_method_definition_kind value: %d", value);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
VALUE rbs_method_definition_visibility_to_ruby(enum rbs_method_definition_visibility value) {
|
|
144
|
+
switch (value) {
|
|
145
|
+
case RBS_METHOD_DEFINITION_VISIBILITY_UNSPECIFIED:
|
|
146
|
+
return Qnil;
|
|
147
|
+
case RBS_METHOD_DEFINITION_VISIBILITY_PUBLIC:
|
|
148
|
+
return rb_id2sym(rb_intern("public"));
|
|
149
|
+
case RBS_METHOD_DEFINITION_VISIBILITY_PRIVATE:
|
|
150
|
+
return rb_id2sym(rb_intern("private"));
|
|
151
|
+
default:
|
|
152
|
+
rb_fatal("unknown enum rbs_method_definition_visibility value: %d", value);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
VALUE rbs_type_param_variance_to_ruby(enum rbs_type_param_variance value) {
|
|
157
|
+
switch (value) {
|
|
158
|
+
case RBS_TYPE_PARAM_VARIANCE_INVARIANT:
|
|
159
|
+
return rb_id2sym(rb_intern("invariant"));
|
|
160
|
+
case RBS_TYPE_PARAM_VARIANCE_COVARIANT:
|
|
161
|
+
return rb_id2sym(rb_intern("covariant"));
|
|
162
|
+
case RBS_TYPE_PARAM_VARIANCE_CONTRAVARIANT:
|
|
163
|
+
return rb_id2sym(rb_intern("contravariant"));
|
|
164
|
+
default:
|
|
165
|
+
rb_fatal("unknown enum rbs_type_param_variance value: %d", value);
|
|
166
|
+
}
|
|
74
167
|
}
|
|
75
168
|
|
|
76
169
|
#ifdef RB_PASS_KEYWORDS
|
|
@@ -91,7 +184,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
91
184
|
rbs_ast_annotation_t *node = (rbs_ast_annotation_t *) instance;
|
|
92
185
|
|
|
93
186
|
VALUE h = rb_hash_new();
|
|
94
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
187
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
95
188
|
rb_hash_aset(h, ID2SYM(rb_intern("string")), rbs_string_to_ruby_string(&node->string, ctx.encoding));
|
|
96
189
|
|
|
97
190
|
return CLASS_NEW_INSTANCE(
|
|
@@ -107,7 +200,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
107
200
|
rbs_ast_comment_t *node = (rbs_ast_comment_t *) instance;
|
|
108
201
|
|
|
109
202
|
VALUE h = rb_hash_new();
|
|
110
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
203
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
111
204
|
rb_hash_aset(h, ID2SYM(rb_intern("string")), rbs_string_to_ruby_string(&node->string, ctx.encoding));
|
|
112
205
|
|
|
113
206
|
return CLASS_NEW_INSTANCE(
|
|
@@ -120,7 +213,15 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
120
213
|
rbs_ast_declarations_class_t *node = (rbs_ast_declarations_class_t *) instance;
|
|
121
214
|
|
|
122
215
|
VALUE h = rb_hash_new();
|
|
123
|
-
|
|
216
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
217
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
218
|
+
rbs_loc_legacy_alloc_children(loc, 5);
|
|
219
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
220
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
221
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("end"), (rbs_loc_range) { .start = node->end_range.start_char, .end = node->end_range.end_char });
|
|
222
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("type_params"), (rbs_loc_range) { .start = node->type_params_range.start_char, .end = node->type_params_range.end_char });
|
|
223
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("lt"), (rbs_loc_range) { .start = node->lt_range.start_char, .end = node->lt_range.end_char });
|
|
224
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
124
225
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
125
226
|
rb_hash_aset(h, ID2SYM(rb_intern("type_params")), rbs_node_list_to_ruby_array(ctx, node->type_params));
|
|
126
227
|
rb_hash_aset(h, ID2SYM(rb_intern("super_class")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->super_class)); // rbs_ast_declarations_class_super
|
|
@@ -144,7 +245,12 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
144
245
|
rbs_ast_declarations_class_super_t *node = (rbs_ast_declarations_class_super_t *) instance;
|
|
145
246
|
|
|
146
247
|
VALUE h = rb_hash_new();
|
|
147
|
-
|
|
248
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
249
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
250
|
+
rbs_loc_legacy_alloc_children(loc, 2);
|
|
251
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
252
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("args"), (rbs_loc_range) { .start = node->args_range.start_char, .end = node->args_range.end_char });
|
|
253
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
148
254
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
149
255
|
rb_hash_aset(h, ID2SYM(rb_intern("args")), rbs_node_list_to_ruby_array(ctx, node->args));
|
|
150
256
|
|
|
@@ -158,7 +264,14 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
158
264
|
rbs_ast_declarations_class_alias_t *node = (rbs_ast_declarations_class_alias_t *) instance;
|
|
159
265
|
|
|
160
266
|
VALUE h = rb_hash_new();
|
|
161
|
-
|
|
267
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
268
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
269
|
+
rbs_loc_legacy_alloc_children(loc, 4);
|
|
270
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
271
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("new_name"), (rbs_loc_range) { .start = node->new_name_range.start_char, .end = node->new_name_range.end_char });
|
|
272
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("eq"), (rbs_loc_range) { .start = node->eq_range.start_char, .end = node->eq_range.end_char });
|
|
273
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("old_name"), (rbs_loc_range) { .start = node->old_name_range.start_char, .end = node->old_name_range.end_char });
|
|
274
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
162
275
|
rb_hash_aset(h, ID2SYM(rb_intern("new_name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->new_name)); // rbs_type_name
|
|
163
276
|
rb_hash_aset(h, ID2SYM(rb_intern("old_name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->old_name)); // rbs_type_name
|
|
164
277
|
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment)); // rbs_ast_comment
|
|
@@ -174,7 +287,12 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
174
287
|
rbs_ast_declarations_constant_t *node = (rbs_ast_declarations_constant_t *) instance;
|
|
175
288
|
|
|
176
289
|
VALUE h = rb_hash_new();
|
|
177
|
-
|
|
290
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
291
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
292
|
+
rbs_loc_legacy_alloc_children(loc, 2);
|
|
293
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
294
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("colon"), (rbs_loc_range) { .start = node->colon_range.start_char, .end = node->colon_range.end_char });
|
|
295
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
178
296
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
179
297
|
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
180
298
|
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment)); // rbs_ast_comment
|
|
@@ -190,7 +308,12 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
190
308
|
rbs_ast_declarations_global_t *node = (rbs_ast_declarations_global_t *) instance;
|
|
191
309
|
|
|
192
310
|
VALUE h = rb_hash_new();
|
|
193
|
-
|
|
311
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
312
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
313
|
+
rbs_loc_legacy_alloc_children(loc, 2);
|
|
314
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
315
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("colon"), (rbs_loc_range) { .start = node->colon_range.start_char, .end = node->colon_range.end_char });
|
|
316
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
194
317
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_ast_symbol
|
|
195
318
|
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
196
319
|
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment)); // rbs_ast_comment
|
|
@@ -206,7 +329,14 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
206
329
|
rbs_ast_declarations_interface_t *node = (rbs_ast_declarations_interface_t *) instance;
|
|
207
330
|
|
|
208
331
|
VALUE h = rb_hash_new();
|
|
209
|
-
|
|
332
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
333
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
334
|
+
rbs_loc_legacy_alloc_children(loc, 4);
|
|
335
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
336
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
337
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("end"), (rbs_loc_range) { .start = node->end_range.start_char, .end = node->end_range.end_char });
|
|
338
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("type_params"), (rbs_loc_range) { .start = node->type_params_range.start_char, .end = node->type_params_range.end_char });
|
|
339
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
210
340
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
211
341
|
rb_hash_aset(h, ID2SYM(rb_intern("type_params")), rbs_node_list_to_ruby_array(ctx, node->type_params));
|
|
212
342
|
rb_hash_aset(h, ID2SYM(rb_intern("members")), rbs_node_list_to_ruby_array(ctx, node->members));
|
|
@@ -229,7 +359,16 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
229
359
|
rbs_ast_declarations_module_t *node = (rbs_ast_declarations_module_t *) instance;
|
|
230
360
|
|
|
231
361
|
VALUE h = rb_hash_new();
|
|
232
|
-
|
|
362
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
363
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
364
|
+
rbs_loc_legacy_alloc_children(loc, 6);
|
|
365
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
366
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
367
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("end"), (rbs_loc_range) { .start = node->end_range.start_char, .end = node->end_range.end_char });
|
|
368
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("type_params"), (rbs_loc_range) { .start = node->type_params_range.start_char, .end = node->type_params_range.end_char });
|
|
369
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("colon"), (rbs_loc_range) { .start = node->colon_range.start_char, .end = node->colon_range.end_char });
|
|
370
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("self_types"), (rbs_loc_range) { .start = node->self_types_range.start_char, .end = node->self_types_range.end_char });
|
|
371
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
233
372
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
234
373
|
rb_hash_aset(h, ID2SYM(rb_intern("type_params")), rbs_node_list_to_ruby_array(ctx, node->type_params));
|
|
235
374
|
rb_hash_aset(h, ID2SYM(rb_intern("self_types")), rbs_node_list_to_ruby_array(ctx, node->self_types));
|
|
@@ -253,7 +392,12 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
253
392
|
rbs_ast_declarations_module_self_t *node = (rbs_ast_declarations_module_self_t *) instance;
|
|
254
393
|
|
|
255
394
|
VALUE h = rb_hash_new();
|
|
256
|
-
|
|
395
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
396
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
397
|
+
rbs_loc_legacy_alloc_children(loc, 2);
|
|
398
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
399
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("args"), (rbs_loc_range) { .start = node->args_range.start_char, .end = node->args_range.end_char });
|
|
400
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
257
401
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
258
402
|
rb_hash_aset(h, ID2SYM(rb_intern("args")), rbs_node_list_to_ruby_array(ctx, node->args));
|
|
259
403
|
|
|
@@ -267,7 +411,14 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
267
411
|
rbs_ast_declarations_module_alias_t *node = (rbs_ast_declarations_module_alias_t *) instance;
|
|
268
412
|
|
|
269
413
|
VALUE h = rb_hash_new();
|
|
270
|
-
|
|
414
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
415
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
416
|
+
rbs_loc_legacy_alloc_children(loc, 4);
|
|
417
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
418
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("new_name"), (rbs_loc_range) { .start = node->new_name_range.start_char, .end = node->new_name_range.end_char });
|
|
419
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("eq"), (rbs_loc_range) { .start = node->eq_range.start_char, .end = node->eq_range.end_char });
|
|
420
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("old_name"), (rbs_loc_range) { .start = node->old_name_range.start_char, .end = node->old_name_range.end_char });
|
|
421
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
271
422
|
rb_hash_aset(h, ID2SYM(rb_intern("new_name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->new_name)); // rbs_type_name
|
|
272
423
|
rb_hash_aset(h, ID2SYM(rb_intern("old_name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->old_name)); // rbs_type_name
|
|
273
424
|
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment)); // rbs_ast_comment
|
|
@@ -283,7 +434,14 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
283
434
|
rbs_ast_declarations_type_alias_t *node = (rbs_ast_declarations_type_alias_t *) instance;
|
|
284
435
|
|
|
285
436
|
VALUE h = rb_hash_new();
|
|
286
|
-
|
|
437
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
438
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
439
|
+
rbs_loc_legacy_alloc_children(loc, 4);
|
|
440
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
441
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
442
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("eq"), (rbs_loc_range) { .start = node->eq_range.start_char, .end = node->eq_range.end_char });
|
|
443
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("type_params"), (rbs_loc_range) { .start = node->type_params_range.start_char, .end = node->type_params_range.end_char });
|
|
444
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
287
445
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
288
446
|
rb_hash_aset(h, ID2SYM(rb_intern("type_params")), rbs_node_list_to_ruby_array(ctx, node->type_params));
|
|
289
447
|
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
@@ -306,7 +464,11 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
306
464
|
rbs_ast_directives_use_t *node = (rbs_ast_directives_use_t *) instance;
|
|
307
465
|
|
|
308
466
|
VALUE h = rb_hash_new();
|
|
309
|
-
|
|
467
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
468
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
469
|
+
rbs_loc_legacy_alloc_children(loc, 1);
|
|
470
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
471
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
310
472
|
rb_hash_aset(h, ID2SYM(rb_intern("clauses")), rbs_node_list_to_ruby_array(ctx, node->clauses));
|
|
311
473
|
|
|
312
474
|
return CLASS_NEW_INSTANCE(
|
|
@@ -319,7 +481,13 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
319
481
|
rbs_ast_directives_use_single_clause_t *node = (rbs_ast_directives_use_single_clause_t *) instance;
|
|
320
482
|
|
|
321
483
|
VALUE h = rb_hash_new();
|
|
322
|
-
|
|
484
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
485
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
486
|
+
rbs_loc_legacy_alloc_children(loc, 3);
|
|
487
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("type_name"), (rbs_loc_range) { .start = node->type_name_range.start_char, .end = node->type_name_range.end_char });
|
|
488
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
489
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("new_name"), (rbs_loc_range) { .start = node->new_name_range.start_char, .end = node->new_name_range.end_char });
|
|
490
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
323
491
|
rb_hash_aset(h, ID2SYM(rb_intern("type_name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type_name)); // rbs_type_name
|
|
324
492
|
rb_hash_aset(h, ID2SYM(rb_intern("new_name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->new_name)); // rbs_ast_symbol
|
|
325
493
|
|
|
@@ -333,7 +501,12 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
333
501
|
rbs_ast_directives_use_wildcard_clause_t *node = (rbs_ast_directives_use_wildcard_clause_t *) instance;
|
|
334
502
|
|
|
335
503
|
VALUE h = rb_hash_new();
|
|
336
|
-
|
|
504
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
505
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
506
|
+
rbs_loc_legacy_alloc_children(loc, 2);
|
|
507
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("namespace"), (rbs_loc_range) { .start = node->namespace_range.start_char, .end = node->namespace_range.end_char });
|
|
508
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("star"), (rbs_loc_range) { .start = node->star_range.start_char, .end = node->star_range.end_char });
|
|
509
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
337
510
|
rb_hash_aset(h, ID2SYM(rb_intern("namespace")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->rbs_namespace)); // rbs_namespace
|
|
338
511
|
|
|
339
512
|
return CLASS_NEW_INSTANCE(
|
|
@@ -354,10 +527,18 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
354
527
|
rbs_ast_members_alias_t *node = (rbs_ast_members_alias_t *) instance;
|
|
355
528
|
|
|
356
529
|
VALUE h = rb_hash_new();
|
|
357
|
-
|
|
530
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
531
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
532
|
+
rbs_loc_legacy_alloc_children(loc, 5);
|
|
533
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
534
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("new_name"), (rbs_loc_range) { .start = node->new_name_range.start_char, .end = node->new_name_range.end_char });
|
|
535
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("old_name"), (rbs_loc_range) { .start = node->old_name_range.start_char, .end = node->old_name_range.end_char });
|
|
536
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("new_kind"), (rbs_loc_range) { .start = node->new_kind_range.start_char, .end = node->new_kind_range.end_char });
|
|
537
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("old_kind"), (rbs_loc_range) { .start = node->old_kind_range.start_char, .end = node->old_kind_range.end_char });
|
|
538
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
358
539
|
rb_hash_aset(h, ID2SYM(rb_intern("new_name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->new_name)); // rbs_ast_symbol
|
|
359
540
|
rb_hash_aset(h, ID2SYM(rb_intern("old_name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->old_name)); // rbs_ast_symbol
|
|
360
|
-
rb_hash_aset(h, ID2SYM(rb_intern("kind")),
|
|
541
|
+
rb_hash_aset(h, ID2SYM(rb_intern("kind")), rbs_alias_kind_to_ruby(node->kind)); // alias_kind
|
|
361
542
|
rb_hash_aset(h, ID2SYM(rb_intern("annotations")), rbs_node_list_to_ruby_array(ctx, node->annotations));
|
|
362
543
|
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment)); // rbs_ast_comment
|
|
363
544
|
|
|
@@ -371,14 +552,24 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
371
552
|
rbs_ast_members_attr_accessor_t *node = (rbs_ast_members_attr_accessor_t *) instance;
|
|
372
553
|
|
|
373
554
|
VALUE h = rb_hash_new();
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
555
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
556
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
557
|
+
rbs_loc_legacy_alloc_children(loc, 7);
|
|
558
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
559
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
560
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("colon"), (rbs_loc_range) { .start = node->colon_range.start_char, .end = node->colon_range.end_char });
|
|
561
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("kind"), (rbs_loc_range) { .start = node->kind_range.start_char, .end = node->kind_range.end_char });
|
|
562
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("ivar"), (rbs_loc_range) { .start = node->ivar_range.start_char, .end = node->ivar_range.end_char });
|
|
563
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("ivar_name"), (rbs_loc_range) { .start = node->ivar_name_range.start_char, .end = node->ivar_name_range.end_char });
|
|
564
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("visibility"), (rbs_loc_range) { .start = node->visibility_range.start_char, .end = node->visibility_range.end_char });
|
|
565
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
566
|
+
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_ast_symbol
|
|
567
|
+
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
568
|
+
rb_hash_aset(h, ID2SYM(rb_intern("ivar_name")), rbs_attr_ivar_name_to_ruby(ctx, node->ivar_name)); // rbs_attr_ivar_name_t
|
|
569
|
+
rb_hash_aset(h, ID2SYM(rb_intern("kind")), rbs_attribute_kind_to_ruby(node->kind)); // attribute_kind
|
|
379
570
|
rb_hash_aset(h, ID2SYM(rb_intern("annotations")), rbs_node_list_to_ruby_array(ctx, node->annotations));
|
|
380
|
-
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment));
|
|
381
|
-
rb_hash_aset(h, ID2SYM(rb_intern("visibility")),
|
|
571
|
+
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment)); // rbs_ast_comment
|
|
572
|
+
rb_hash_aset(h, ID2SYM(rb_intern("visibility")), rbs_attribute_visibility_to_ruby(node->visibility)); // attribute_visibility
|
|
382
573
|
|
|
383
574
|
return CLASS_NEW_INSTANCE(
|
|
384
575
|
RBS_AST_Members_AttrAccessor,
|
|
@@ -390,14 +581,24 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
390
581
|
rbs_ast_members_attr_reader_t *node = (rbs_ast_members_attr_reader_t *) instance;
|
|
391
582
|
|
|
392
583
|
VALUE h = rb_hash_new();
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
584
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
585
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
586
|
+
rbs_loc_legacy_alloc_children(loc, 7);
|
|
587
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
588
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
589
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("colon"), (rbs_loc_range) { .start = node->colon_range.start_char, .end = node->colon_range.end_char });
|
|
590
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("kind"), (rbs_loc_range) { .start = node->kind_range.start_char, .end = node->kind_range.end_char });
|
|
591
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("ivar"), (rbs_loc_range) { .start = node->ivar_range.start_char, .end = node->ivar_range.end_char });
|
|
592
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("ivar_name"), (rbs_loc_range) { .start = node->ivar_name_range.start_char, .end = node->ivar_name_range.end_char });
|
|
593
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("visibility"), (rbs_loc_range) { .start = node->visibility_range.start_char, .end = node->visibility_range.end_char });
|
|
594
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
595
|
+
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_ast_symbol
|
|
596
|
+
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
597
|
+
rb_hash_aset(h, ID2SYM(rb_intern("ivar_name")), rbs_attr_ivar_name_to_ruby(ctx, node->ivar_name)); // rbs_attr_ivar_name_t
|
|
598
|
+
rb_hash_aset(h, ID2SYM(rb_intern("kind")), rbs_attribute_kind_to_ruby(node->kind)); // attribute_kind
|
|
398
599
|
rb_hash_aset(h, ID2SYM(rb_intern("annotations")), rbs_node_list_to_ruby_array(ctx, node->annotations));
|
|
399
|
-
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment));
|
|
400
|
-
rb_hash_aset(h, ID2SYM(rb_intern("visibility")),
|
|
600
|
+
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment)); // rbs_ast_comment
|
|
601
|
+
rb_hash_aset(h, ID2SYM(rb_intern("visibility")), rbs_attribute_visibility_to_ruby(node->visibility)); // attribute_visibility
|
|
401
602
|
|
|
402
603
|
return CLASS_NEW_INSTANCE(
|
|
403
604
|
RBS_AST_Members_AttrReader,
|
|
@@ -409,14 +610,24 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
409
610
|
rbs_ast_members_attr_writer_t *node = (rbs_ast_members_attr_writer_t *) instance;
|
|
410
611
|
|
|
411
612
|
VALUE h = rb_hash_new();
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
613
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
614
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
615
|
+
rbs_loc_legacy_alloc_children(loc, 7);
|
|
616
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
617
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
618
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("colon"), (rbs_loc_range) { .start = node->colon_range.start_char, .end = node->colon_range.end_char });
|
|
619
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("kind"), (rbs_loc_range) { .start = node->kind_range.start_char, .end = node->kind_range.end_char });
|
|
620
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("ivar"), (rbs_loc_range) { .start = node->ivar_range.start_char, .end = node->ivar_range.end_char });
|
|
621
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("ivar_name"), (rbs_loc_range) { .start = node->ivar_name_range.start_char, .end = node->ivar_name_range.end_char });
|
|
622
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("visibility"), (rbs_loc_range) { .start = node->visibility_range.start_char, .end = node->visibility_range.end_char });
|
|
623
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
624
|
+
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_ast_symbol
|
|
625
|
+
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
626
|
+
rb_hash_aset(h, ID2SYM(rb_intern("ivar_name")), rbs_attr_ivar_name_to_ruby(ctx, node->ivar_name)); // rbs_attr_ivar_name_t
|
|
627
|
+
rb_hash_aset(h, ID2SYM(rb_intern("kind")), rbs_attribute_kind_to_ruby(node->kind)); // attribute_kind
|
|
417
628
|
rb_hash_aset(h, ID2SYM(rb_intern("annotations")), rbs_node_list_to_ruby_array(ctx, node->annotations));
|
|
418
|
-
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment));
|
|
419
|
-
rb_hash_aset(h, ID2SYM(rb_intern("visibility")),
|
|
629
|
+
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment)); // rbs_ast_comment
|
|
630
|
+
rb_hash_aset(h, ID2SYM(rb_intern("visibility")), rbs_attribute_visibility_to_ruby(node->visibility)); // attribute_visibility
|
|
420
631
|
|
|
421
632
|
return CLASS_NEW_INSTANCE(
|
|
422
633
|
RBS_AST_Members_AttrWriter,
|
|
@@ -428,7 +639,13 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
428
639
|
rbs_ast_members_class_instance_variable_t *node = (rbs_ast_members_class_instance_variable_t *) instance;
|
|
429
640
|
|
|
430
641
|
VALUE h = rb_hash_new();
|
|
431
|
-
|
|
642
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
643
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
644
|
+
rbs_loc_legacy_alloc_children(loc, 3);
|
|
645
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
646
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("colon"), (rbs_loc_range) { .start = node->colon_range.start_char, .end = node->colon_range.end_char });
|
|
647
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("kind"), (rbs_loc_range) { .start = node->kind_range.start_char, .end = node->kind_range.end_char });
|
|
648
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
432
649
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_ast_symbol
|
|
433
650
|
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
434
651
|
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment)); // rbs_ast_comment
|
|
@@ -443,7 +660,13 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
443
660
|
rbs_ast_members_class_variable_t *node = (rbs_ast_members_class_variable_t *) instance;
|
|
444
661
|
|
|
445
662
|
VALUE h = rb_hash_new();
|
|
446
|
-
|
|
663
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
664
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
665
|
+
rbs_loc_legacy_alloc_children(loc, 3);
|
|
666
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
667
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("colon"), (rbs_loc_range) { .start = node->colon_range.start_char, .end = node->colon_range.end_char });
|
|
668
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("kind"), (rbs_loc_range) { .start = node->kind_range.start_char, .end = node->kind_range.end_char });
|
|
669
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
447
670
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_ast_symbol
|
|
448
671
|
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
449
672
|
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment)); // rbs_ast_comment
|
|
@@ -458,7 +681,13 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
458
681
|
rbs_ast_members_extend_t *node = (rbs_ast_members_extend_t *) instance;
|
|
459
682
|
|
|
460
683
|
VALUE h = rb_hash_new();
|
|
461
|
-
|
|
684
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
685
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
686
|
+
rbs_loc_legacy_alloc_children(loc, 3);
|
|
687
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
688
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
689
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("args"), (rbs_loc_range) { .start = node->args_range.start_char, .end = node->args_range.end_char });
|
|
690
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
462
691
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
463
692
|
rb_hash_aset(h, ID2SYM(rb_intern("args")), rbs_node_list_to_ruby_array(ctx, node->args));
|
|
464
693
|
rb_hash_aset(h, ID2SYM(rb_intern("annotations")), rbs_node_list_to_ruby_array(ctx, node->annotations));
|
|
@@ -474,7 +703,13 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
474
703
|
rbs_ast_members_include_t *node = (rbs_ast_members_include_t *) instance;
|
|
475
704
|
|
|
476
705
|
VALUE h = rb_hash_new();
|
|
477
|
-
|
|
706
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
707
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
708
|
+
rbs_loc_legacy_alloc_children(loc, 3);
|
|
709
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
710
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
711
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("args"), (rbs_loc_range) { .start = node->args_range.start_char, .end = node->args_range.end_char });
|
|
712
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
478
713
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
479
714
|
rb_hash_aset(h, ID2SYM(rb_intern("args")), rbs_node_list_to_ruby_array(ctx, node->args));
|
|
480
715
|
rb_hash_aset(h, ID2SYM(rb_intern("annotations")), rbs_node_list_to_ruby_array(ctx, node->annotations));
|
|
@@ -490,7 +725,13 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
490
725
|
rbs_ast_members_instance_variable_t *node = (rbs_ast_members_instance_variable_t *) instance;
|
|
491
726
|
|
|
492
727
|
VALUE h = rb_hash_new();
|
|
493
|
-
|
|
728
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
729
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
730
|
+
rbs_loc_legacy_alloc_children(loc, 3);
|
|
731
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
732
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("colon"), (rbs_loc_range) { .start = node->colon_range.start_char, .end = node->colon_range.end_char });
|
|
733
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("kind"), (rbs_loc_range) { .start = node->kind_range.start_char, .end = node->kind_range.end_char });
|
|
734
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
494
735
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_ast_symbol
|
|
495
736
|
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
496
737
|
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment)); // rbs_ast_comment
|
|
@@ -505,14 +746,22 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
505
746
|
rbs_ast_members_method_definition_t *node = (rbs_ast_members_method_definition_t *) instance;
|
|
506
747
|
|
|
507
748
|
VALUE h = rb_hash_new();
|
|
508
|
-
|
|
749
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
750
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
751
|
+
rbs_loc_legacy_alloc_children(loc, 5);
|
|
752
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
753
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
754
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("kind"), (rbs_loc_range) { .start = node->kind_range.start_char, .end = node->kind_range.end_char });
|
|
755
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("overloading"), (rbs_loc_range) { .start = node->overloading_range.start_char, .end = node->overloading_range.end_char });
|
|
756
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("visibility"), (rbs_loc_range) { .start = node->visibility_range.start_char, .end = node->visibility_range.end_char });
|
|
757
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
509
758
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_ast_symbol
|
|
510
|
-
rb_hash_aset(h, ID2SYM(rb_intern("kind")),
|
|
759
|
+
rb_hash_aset(h, ID2SYM(rb_intern("kind")), rbs_method_definition_kind_to_ruby(node->kind)); // method_definition_kind
|
|
511
760
|
rb_hash_aset(h, ID2SYM(rb_intern("overloads")), rbs_node_list_to_ruby_array(ctx, node->overloads));
|
|
512
761
|
rb_hash_aset(h, ID2SYM(rb_intern("annotations")), rbs_node_list_to_ruby_array(ctx, node->annotations));
|
|
513
762
|
rb_hash_aset(h, ID2SYM(rb_intern("comment")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->comment)); // rbs_ast_comment
|
|
514
763
|
rb_hash_aset(h, ID2SYM(rb_intern("overloading")), node->overloading ? Qtrue : Qfalse);
|
|
515
|
-
rb_hash_aset(h, ID2SYM(rb_intern("visibility")),
|
|
764
|
+
rb_hash_aset(h, ID2SYM(rb_intern("visibility")), rbs_method_definition_visibility_to_ruby(node->visibility)); // method_definition_visibility
|
|
516
765
|
|
|
517
766
|
return CLASS_NEW_INSTANCE(
|
|
518
767
|
RBS_AST_Members_MethodDefinition,
|
|
@@ -537,7 +786,13 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
537
786
|
rbs_ast_members_prepend_t *node = (rbs_ast_members_prepend_t *) instance;
|
|
538
787
|
|
|
539
788
|
VALUE h = rb_hash_new();
|
|
540
|
-
|
|
789
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
790
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
791
|
+
rbs_loc_legacy_alloc_children(loc, 3);
|
|
792
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
793
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("keyword"), (rbs_loc_range) { .start = node->keyword_range.start_char, .end = node->keyword_range.end_char });
|
|
794
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("args"), (rbs_loc_range) { .start = node->args_range.start_char, .end = node->args_range.end_char });
|
|
795
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
541
796
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
542
797
|
rb_hash_aset(h, ID2SYM(rb_intern("args")), rbs_node_list_to_ruby_array(ctx, node->args));
|
|
543
798
|
rb_hash_aset(h, ID2SYM(rb_intern("annotations")), rbs_node_list_to_ruby_array(ctx, node->annotations));
|
|
@@ -553,7 +808,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
553
808
|
rbs_ast_members_private_t *node = (rbs_ast_members_private_t *) instance;
|
|
554
809
|
|
|
555
810
|
VALUE h = rb_hash_new();
|
|
556
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
811
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
557
812
|
|
|
558
813
|
return CLASS_NEW_INSTANCE(
|
|
559
814
|
RBS_AST_Members_Private,
|
|
@@ -565,7 +820,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
565
820
|
rbs_ast_members_public_t *node = (rbs_ast_members_public_t *) instance;
|
|
566
821
|
|
|
567
822
|
VALUE h = rb_hash_new();
|
|
568
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
823
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
569
824
|
|
|
570
825
|
return CLASS_NEW_INSTANCE(
|
|
571
826
|
RBS_AST_Members_Public,
|
|
@@ -573,12 +828,48 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
573
828
|
&h
|
|
574
829
|
);
|
|
575
830
|
}
|
|
831
|
+
case RBS_AST_RUBY_ANNOTATIONS_BLOCK_PARAM_TYPE_ANNOTATION: {
|
|
832
|
+
rbs_ast_ruby_annotations_block_param_type_annotation_t *node = (rbs_ast_ruby_annotations_block_param_type_annotation_t *) instance;
|
|
833
|
+
|
|
834
|
+
VALUE h = rb_hash_new();
|
|
835
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
836
|
+
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")), rbs_location_range_to_ruby_location(ctx, node->prefix_location));
|
|
837
|
+
rb_hash_aset(h, ID2SYM(rb_intern("ampersand_location")), rbs_location_range_to_ruby_location(ctx, node->ampersand_location));
|
|
838
|
+
rb_hash_aset(h, ID2SYM(rb_intern("name_location")), rbs_location_range_to_ruby_location(ctx, node->name_location)); // optional
|
|
839
|
+
rb_hash_aset(h, ID2SYM(rb_intern("colon_location")), rbs_location_range_to_ruby_location(ctx, node->colon_location));
|
|
840
|
+
rb_hash_aset(h, ID2SYM(rb_intern("question_location")), rbs_location_range_to_ruby_location(ctx, node->question_location)); // optional
|
|
841
|
+
rb_hash_aset(h, ID2SYM(rb_intern("type_location")), rbs_location_range_to_ruby_location(ctx, node->type_location));
|
|
842
|
+
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type_)); // rbs_node
|
|
843
|
+
rb_hash_aset(h, ID2SYM(rb_intern("comment_location")), rbs_location_range_to_ruby_location(ctx, node->comment_location)); // optional
|
|
844
|
+
|
|
845
|
+
return CLASS_NEW_INSTANCE(
|
|
846
|
+
RBS_AST_Ruby_Annotations_BlockParamTypeAnnotation,
|
|
847
|
+
1,
|
|
848
|
+
&h
|
|
849
|
+
);
|
|
850
|
+
}
|
|
851
|
+
case RBS_AST_RUBY_ANNOTATIONS_CLASS_ALIAS_ANNOTATION: {
|
|
852
|
+
rbs_ast_ruby_annotations_class_alias_annotation_t *node = (rbs_ast_ruby_annotations_class_alias_annotation_t *) instance;
|
|
853
|
+
|
|
854
|
+
VALUE h = rb_hash_new();
|
|
855
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
856
|
+
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")), rbs_location_range_to_ruby_location(ctx, node->prefix_location));
|
|
857
|
+
rb_hash_aset(h, ID2SYM(rb_intern("keyword_location")), rbs_location_range_to_ruby_location(ctx, node->keyword_location));
|
|
858
|
+
rb_hash_aset(h, ID2SYM(rb_intern("type_name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type_name)); // rbs_type_name
|
|
859
|
+
rb_hash_aset(h, ID2SYM(rb_intern("type_name_location")), rbs_location_range_to_ruby_location(ctx, node->type_name_location)); // optional
|
|
860
|
+
|
|
861
|
+
return CLASS_NEW_INSTANCE(
|
|
862
|
+
RBS_AST_Ruby_Annotations_ClassAliasAnnotation,
|
|
863
|
+
1,
|
|
864
|
+
&h
|
|
865
|
+
);
|
|
866
|
+
}
|
|
576
867
|
case RBS_AST_RUBY_ANNOTATIONS_COLON_METHOD_TYPE_ANNOTATION: {
|
|
577
868
|
rbs_ast_ruby_annotations_colon_method_type_annotation_t *node = (rbs_ast_ruby_annotations_colon_method_type_annotation_t *) instance;
|
|
578
869
|
|
|
579
870
|
VALUE h = rb_hash_new();
|
|
580
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
581
|
-
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")),
|
|
871
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
872
|
+
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")), rbs_location_range_to_ruby_location(ctx, node->prefix_location));
|
|
582
873
|
rb_hash_aset(h, ID2SYM(rb_intern("annotations")), rbs_node_list_to_ruby_array(ctx, node->annotations));
|
|
583
874
|
rb_hash_aset(h, ID2SYM(rb_intern("method_type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->method_type)); // rbs_node
|
|
584
875
|
|
|
@@ -588,14 +879,51 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
588
879
|
&h
|
|
589
880
|
);
|
|
590
881
|
}
|
|
882
|
+
case RBS_AST_RUBY_ANNOTATIONS_DOUBLE_SPLAT_PARAM_TYPE_ANNOTATION: {
|
|
883
|
+
rbs_ast_ruby_annotations_double_splat_param_type_annotation_t *node = (rbs_ast_ruby_annotations_double_splat_param_type_annotation_t *) instance;
|
|
884
|
+
|
|
885
|
+
VALUE h = rb_hash_new();
|
|
886
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
887
|
+
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")), rbs_location_range_to_ruby_location(ctx, node->prefix_location));
|
|
888
|
+
rb_hash_aset(h, ID2SYM(rb_intern("star2_location")), rbs_location_range_to_ruby_location(ctx, node->star2_location));
|
|
889
|
+
rb_hash_aset(h, ID2SYM(rb_intern("name_location")), rbs_location_range_to_ruby_location(ctx, node->name_location)); // optional
|
|
890
|
+
rb_hash_aset(h, ID2SYM(rb_intern("colon_location")), rbs_location_range_to_ruby_location(ctx, node->colon_location));
|
|
891
|
+
rb_hash_aset(h, ID2SYM(rb_intern("param_type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->param_type)); // rbs_node
|
|
892
|
+
rb_hash_aset(h, ID2SYM(rb_intern("comment_location")), rbs_location_range_to_ruby_location(ctx, node->comment_location)); // optional
|
|
893
|
+
|
|
894
|
+
return CLASS_NEW_INSTANCE(
|
|
895
|
+
RBS_AST_Ruby_Annotations_DoubleSplatParamTypeAnnotation,
|
|
896
|
+
1,
|
|
897
|
+
&h
|
|
898
|
+
);
|
|
899
|
+
}
|
|
900
|
+
case RBS_AST_RUBY_ANNOTATIONS_INSTANCE_VARIABLE_ANNOTATION: {
|
|
901
|
+
rbs_ast_ruby_annotations_instance_variable_annotation_t *node = (rbs_ast_ruby_annotations_instance_variable_annotation_t *) instance;
|
|
902
|
+
|
|
903
|
+
VALUE h = rb_hash_new();
|
|
904
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
905
|
+
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")), rbs_location_range_to_ruby_location(ctx, node->prefix_location));
|
|
906
|
+
rb_hash_aset(h, ID2SYM(rb_intern("ivar_name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->ivar_name)); // rbs_ast_symbol
|
|
907
|
+
rb_hash_aset(h, ID2SYM(rb_intern("ivar_name_location")), rbs_location_range_to_ruby_location(ctx, node->ivar_name_location));
|
|
908
|
+
rb_hash_aset(h, ID2SYM(rb_intern("colon_location")), rbs_location_range_to_ruby_location(ctx, node->colon_location));
|
|
909
|
+
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
910
|
+
rb_hash_aset(h, ID2SYM(rb_intern("comment_location")), rbs_location_range_to_ruby_location(ctx, node->comment_location)); // optional
|
|
911
|
+
|
|
912
|
+
return CLASS_NEW_INSTANCE(
|
|
913
|
+
RBS_AST_Ruby_Annotations_InstanceVariableAnnotation,
|
|
914
|
+
1,
|
|
915
|
+
&h
|
|
916
|
+
);
|
|
917
|
+
}
|
|
591
918
|
case RBS_AST_RUBY_ANNOTATIONS_METHOD_TYPES_ANNOTATION: {
|
|
592
919
|
rbs_ast_ruby_annotations_method_types_annotation_t *node = (rbs_ast_ruby_annotations_method_types_annotation_t *) instance;
|
|
593
920
|
|
|
594
921
|
VALUE h = rb_hash_new();
|
|
595
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
596
|
-
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")),
|
|
922
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
923
|
+
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")), rbs_location_range_to_ruby_location(ctx, node->prefix_location));
|
|
597
924
|
rb_hash_aset(h, ID2SYM(rb_intern("overloads")), rbs_node_list_to_ruby_array(ctx, node->overloads));
|
|
598
|
-
rb_hash_aset(h, ID2SYM(rb_intern("vertical_bar_locations")),
|
|
925
|
+
rb_hash_aset(h, ID2SYM(rb_intern("vertical_bar_locations")), rbs_location_range_list_to_ruby_array(ctx, node->vertical_bar_locations));
|
|
926
|
+
rb_hash_aset(h, ID2SYM(rb_intern("dot3_location")), rbs_location_range_to_ruby_location(ctx, node->dot3_location)); // optional
|
|
599
927
|
|
|
600
928
|
return CLASS_NEW_INSTANCE(
|
|
601
929
|
RBS_AST_Ruby_Annotations_MethodTypesAnnotation,
|
|
@@ -603,12 +931,28 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
603
931
|
&h
|
|
604
932
|
);
|
|
605
933
|
}
|
|
934
|
+
case RBS_AST_RUBY_ANNOTATIONS_MODULE_ALIAS_ANNOTATION: {
|
|
935
|
+
rbs_ast_ruby_annotations_module_alias_annotation_t *node = (rbs_ast_ruby_annotations_module_alias_annotation_t *) instance;
|
|
936
|
+
|
|
937
|
+
VALUE h = rb_hash_new();
|
|
938
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
939
|
+
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")), rbs_location_range_to_ruby_location(ctx, node->prefix_location));
|
|
940
|
+
rb_hash_aset(h, ID2SYM(rb_intern("keyword_location")), rbs_location_range_to_ruby_location(ctx, node->keyword_location));
|
|
941
|
+
rb_hash_aset(h, ID2SYM(rb_intern("type_name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type_name)); // rbs_type_name
|
|
942
|
+
rb_hash_aset(h, ID2SYM(rb_intern("type_name_location")), rbs_location_range_to_ruby_location(ctx, node->type_name_location)); // optional
|
|
943
|
+
|
|
944
|
+
return CLASS_NEW_INSTANCE(
|
|
945
|
+
RBS_AST_Ruby_Annotations_ModuleAliasAnnotation,
|
|
946
|
+
1,
|
|
947
|
+
&h
|
|
948
|
+
);
|
|
949
|
+
}
|
|
606
950
|
case RBS_AST_RUBY_ANNOTATIONS_NODE_TYPE_ASSERTION: {
|
|
607
951
|
rbs_ast_ruby_annotations_node_type_assertion_t *node = (rbs_ast_ruby_annotations_node_type_assertion_t *) instance;
|
|
608
952
|
|
|
609
953
|
VALUE h = rb_hash_new();
|
|
610
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
611
|
-
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")),
|
|
954
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
955
|
+
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")), rbs_location_range_to_ruby_location(ctx, node->prefix_location));
|
|
612
956
|
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
613
957
|
|
|
614
958
|
return CLASS_NEW_INSTANCE(
|
|
@@ -617,16 +961,33 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
617
961
|
&h
|
|
618
962
|
);
|
|
619
963
|
}
|
|
964
|
+
case RBS_AST_RUBY_ANNOTATIONS_PARAM_TYPE_ANNOTATION: {
|
|
965
|
+
rbs_ast_ruby_annotations_param_type_annotation_t *node = (rbs_ast_ruby_annotations_param_type_annotation_t *) instance;
|
|
966
|
+
|
|
967
|
+
VALUE h = rb_hash_new();
|
|
968
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
969
|
+
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")), rbs_location_range_to_ruby_location(ctx, node->prefix_location));
|
|
970
|
+
rb_hash_aset(h, ID2SYM(rb_intern("name_location")), rbs_location_range_to_ruby_location(ctx, node->name_location));
|
|
971
|
+
rb_hash_aset(h, ID2SYM(rb_intern("colon_location")), rbs_location_range_to_ruby_location(ctx, node->colon_location));
|
|
972
|
+
rb_hash_aset(h, ID2SYM(rb_intern("param_type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->param_type)); // rbs_node
|
|
973
|
+
rb_hash_aset(h, ID2SYM(rb_intern("comment_location")), rbs_location_range_to_ruby_location(ctx, node->comment_location)); // optional
|
|
974
|
+
|
|
975
|
+
return CLASS_NEW_INSTANCE(
|
|
976
|
+
RBS_AST_Ruby_Annotations_ParamTypeAnnotation,
|
|
977
|
+
1,
|
|
978
|
+
&h
|
|
979
|
+
);
|
|
980
|
+
}
|
|
620
981
|
case RBS_AST_RUBY_ANNOTATIONS_RETURN_TYPE_ANNOTATION: {
|
|
621
982
|
rbs_ast_ruby_annotations_return_type_annotation_t *node = (rbs_ast_ruby_annotations_return_type_annotation_t *) instance;
|
|
622
983
|
|
|
623
984
|
VALUE h = rb_hash_new();
|
|
624
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
625
|
-
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")),
|
|
626
|
-
rb_hash_aset(h, ID2SYM(rb_intern("return_location")),
|
|
627
|
-
rb_hash_aset(h, ID2SYM(rb_intern("colon_location")),
|
|
628
|
-
rb_hash_aset(h, ID2SYM(rb_intern("return_type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->return_type));
|
|
629
|
-
rb_hash_aset(h, ID2SYM(rb_intern("comment_location")),
|
|
985
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
986
|
+
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")), rbs_location_range_to_ruby_location(ctx, node->prefix_location));
|
|
987
|
+
rb_hash_aset(h, ID2SYM(rb_intern("return_location")), rbs_location_range_to_ruby_location(ctx, node->return_location));
|
|
988
|
+
rb_hash_aset(h, ID2SYM(rb_intern("colon_location")), rbs_location_range_to_ruby_location(ctx, node->colon_location));
|
|
989
|
+
rb_hash_aset(h, ID2SYM(rb_intern("return_type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->return_type)); // rbs_node
|
|
990
|
+
rb_hash_aset(h, ID2SYM(rb_intern("comment_location")), rbs_location_range_to_ruby_location(ctx, node->comment_location)); // optional
|
|
630
991
|
|
|
631
992
|
return CLASS_NEW_INSTANCE(
|
|
632
993
|
RBS_AST_Ruby_Annotations_ReturnTypeAnnotation,
|
|
@@ -638,10 +999,10 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
638
999
|
rbs_ast_ruby_annotations_skip_annotation_t *node = (rbs_ast_ruby_annotations_skip_annotation_t *) instance;
|
|
639
1000
|
|
|
640
1001
|
VALUE h = rb_hash_new();
|
|
641
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
642
|
-
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")),
|
|
643
|
-
rb_hash_aset(h, ID2SYM(rb_intern("skip_location")),
|
|
644
|
-
rb_hash_aset(h, ID2SYM(rb_intern("comment_location")),
|
|
1002
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
1003
|
+
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")), rbs_location_range_to_ruby_location(ctx, node->prefix_location));
|
|
1004
|
+
rb_hash_aset(h, ID2SYM(rb_intern("skip_location")), rbs_location_range_to_ruby_location(ctx, node->skip_location));
|
|
1005
|
+
rb_hash_aset(h, ID2SYM(rb_intern("comment_location")), rbs_location_range_to_ruby_location(ctx, node->comment_location)); // optional
|
|
645
1006
|
|
|
646
1007
|
return CLASS_NEW_INSTANCE(
|
|
647
1008
|
RBS_AST_Ruby_Annotations_SkipAnnotation,
|
|
@@ -649,6 +1010,40 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
649
1010
|
&h
|
|
650
1011
|
);
|
|
651
1012
|
}
|
|
1013
|
+
case RBS_AST_RUBY_ANNOTATIONS_SPLAT_PARAM_TYPE_ANNOTATION: {
|
|
1014
|
+
rbs_ast_ruby_annotations_splat_param_type_annotation_t *node = (rbs_ast_ruby_annotations_splat_param_type_annotation_t *) instance;
|
|
1015
|
+
|
|
1016
|
+
VALUE h = rb_hash_new();
|
|
1017
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
1018
|
+
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")), rbs_location_range_to_ruby_location(ctx, node->prefix_location));
|
|
1019
|
+
rb_hash_aset(h, ID2SYM(rb_intern("star_location")), rbs_location_range_to_ruby_location(ctx, node->star_location));
|
|
1020
|
+
rb_hash_aset(h, ID2SYM(rb_intern("name_location")), rbs_location_range_to_ruby_location(ctx, node->name_location)); // optional
|
|
1021
|
+
rb_hash_aset(h, ID2SYM(rb_intern("colon_location")), rbs_location_range_to_ruby_location(ctx, node->colon_location));
|
|
1022
|
+
rb_hash_aset(h, ID2SYM(rb_intern("param_type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->param_type)); // rbs_node
|
|
1023
|
+
rb_hash_aset(h, ID2SYM(rb_intern("comment_location")), rbs_location_range_to_ruby_location(ctx, node->comment_location)); // optional
|
|
1024
|
+
|
|
1025
|
+
return CLASS_NEW_INSTANCE(
|
|
1026
|
+
RBS_AST_Ruby_Annotations_SplatParamTypeAnnotation,
|
|
1027
|
+
1,
|
|
1028
|
+
&h
|
|
1029
|
+
);
|
|
1030
|
+
}
|
|
1031
|
+
case RBS_AST_RUBY_ANNOTATIONS_TYPE_APPLICATION_ANNOTATION: {
|
|
1032
|
+
rbs_ast_ruby_annotations_type_application_annotation_t *node = (rbs_ast_ruby_annotations_type_application_annotation_t *) instance;
|
|
1033
|
+
|
|
1034
|
+
VALUE h = rb_hash_new();
|
|
1035
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
1036
|
+
rb_hash_aset(h, ID2SYM(rb_intern("prefix_location")), rbs_location_range_to_ruby_location(ctx, node->prefix_location));
|
|
1037
|
+
rb_hash_aset(h, ID2SYM(rb_intern("type_args")), rbs_node_list_to_ruby_array(ctx, node->type_args));
|
|
1038
|
+
rb_hash_aset(h, ID2SYM(rb_intern("close_bracket_location")), rbs_location_range_to_ruby_location(ctx, node->close_bracket_location));
|
|
1039
|
+
rb_hash_aset(h, ID2SYM(rb_intern("comma_locations")), rbs_location_range_list_to_ruby_array(ctx, node->comma_locations));
|
|
1040
|
+
|
|
1041
|
+
return CLASS_NEW_INSTANCE(
|
|
1042
|
+
RBS_AST_Ruby_Annotations_TypeApplicationAnnotation,
|
|
1043
|
+
1,
|
|
1044
|
+
&h
|
|
1045
|
+
);
|
|
1046
|
+
}
|
|
652
1047
|
case RBS_AST_STRING: {
|
|
653
1048
|
rbs_ast_string_t *string_node = (rbs_ast_string_t *) instance;
|
|
654
1049
|
rbs_string_t s = string_node->string;
|
|
@@ -659,10 +1054,20 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
659
1054
|
rbs_ast_type_param_t *node = (rbs_ast_type_param_t *) instance;
|
|
660
1055
|
|
|
661
1056
|
VALUE h = rb_hash_new();
|
|
662
|
-
|
|
1057
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
1058
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
1059
|
+
rbs_loc_legacy_alloc_children(loc, 6);
|
|
1060
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
1061
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("variance"), (rbs_loc_range) { .start = node->variance_range.start_char, .end = node->variance_range.end_char });
|
|
1062
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("unchecked"), (rbs_loc_range) { .start = node->unchecked_range.start_char, .end = node->unchecked_range.end_char });
|
|
1063
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("upper_bound"), (rbs_loc_range) { .start = node->upper_bound_range.start_char, .end = node->upper_bound_range.end_char });
|
|
1064
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("lower_bound"), (rbs_loc_range) { .start = node->lower_bound_range.start_char, .end = node->lower_bound_range.end_char });
|
|
1065
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("default"), (rbs_loc_range) { .start = node->default_range.start_char, .end = node->default_range.end_char });
|
|
1066
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
663
1067
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_ast_symbol
|
|
664
|
-
rb_hash_aset(h, ID2SYM(rb_intern("variance")),
|
|
1068
|
+
rb_hash_aset(h, ID2SYM(rb_intern("variance")), rbs_type_param_variance_to_ruby(node->variance)); // type_param_variance
|
|
665
1069
|
rb_hash_aset(h, ID2SYM(rb_intern("upper_bound")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->upper_bound)); // rbs_node
|
|
1070
|
+
rb_hash_aset(h, ID2SYM(rb_intern("lower_bound")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->lower_bound)); // rbs_node
|
|
666
1071
|
rb_hash_aset(h, ID2SYM(rb_intern("default_type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->default_type)); // rbs_node
|
|
667
1072
|
rb_hash_aset(h, ID2SYM(rb_intern("unchecked")), node->unchecked ? Qtrue : Qfalse);
|
|
668
1073
|
|
|
@@ -676,7 +1081,12 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
676
1081
|
rbs_method_type_t *node = (rbs_method_type_t *) instance;
|
|
677
1082
|
|
|
678
1083
|
VALUE h = rb_hash_new();
|
|
679
|
-
|
|
1084
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
1085
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
1086
|
+
rbs_loc_legacy_alloc_children(loc, 2);
|
|
1087
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("type"), (rbs_loc_range) { .start = node->type_range.start_char, .end = node->type_range.end_char });
|
|
1088
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("type_params"), (rbs_loc_range) { .start = node->type_params_range.start_char, .end = node->type_params_range.end_char });
|
|
1089
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
680
1090
|
rb_hash_aset(h, ID2SYM(rb_intern("type_params")), rbs_node_list_to_ruby_array(ctx, node->type_params));
|
|
681
1091
|
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
682
1092
|
rb_hash_aset(h, ID2SYM(rb_intern("block")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->block)); // rbs_types_block
|
|
@@ -731,7 +1141,12 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
731
1141
|
rbs_types_alias_t *node = (rbs_types_alias_t *) instance;
|
|
732
1142
|
|
|
733
1143
|
VALUE h = rb_hash_new();
|
|
734
|
-
|
|
1144
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
1145
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
1146
|
+
rbs_loc_legacy_alloc_children(loc, 2);
|
|
1147
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
1148
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("args"), (rbs_loc_range) { .start = node->args_range.start_char, .end = node->args_range.end_char });
|
|
1149
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
735
1150
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
736
1151
|
rb_hash_aset(h, ID2SYM(rb_intern("args")), rbs_node_list_to_ruby_array(ctx, node->args));
|
|
737
1152
|
|
|
@@ -745,7 +1160,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
745
1160
|
rbs_types_bases_any_t *node = (rbs_types_bases_any_t *) instance;
|
|
746
1161
|
|
|
747
1162
|
VALUE h = rb_hash_new();
|
|
748
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1163
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
749
1164
|
rb_hash_aset(h, ID2SYM(rb_intern("todo")), node->todo ? Qtrue : Qfalse);
|
|
750
1165
|
|
|
751
1166
|
return CLASS_NEW_INSTANCE(
|
|
@@ -758,7 +1173,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
758
1173
|
rbs_types_bases_bool_t *node = (rbs_types_bases_bool_t *) instance;
|
|
759
1174
|
|
|
760
1175
|
VALUE h = rb_hash_new();
|
|
761
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1176
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
762
1177
|
|
|
763
1178
|
return CLASS_NEW_INSTANCE(
|
|
764
1179
|
RBS_Types_Bases_Bool,
|
|
@@ -770,7 +1185,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
770
1185
|
rbs_types_bases_bottom_t *node = (rbs_types_bases_bottom_t *) instance;
|
|
771
1186
|
|
|
772
1187
|
VALUE h = rb_hash_new();
|
|
773
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1188
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
774
1189
|
|
|
775
1190
|
return CLASS_NEW_INSTANCE(
|
|
776
1191
|
RBS_Types_Bases_Bottom,
|
|
@@ -782,7 +1197,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
782
1197
|
rbs_types_bases_class_t *node = (rbs_types_bases_class_t *) instance;
|
|
783
1198
|
|
|
784
1199
|
VALUE h = rb_hash_new();
|
|
785
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1200
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
786
1201
|
|
|
787
1202
|
return CLASS_NEW_INSTANCE(
|
|
788
1203
|
RBS_Types_Bases_Class,
|
|
@@ -794,7 +1209,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
794
1209
|
rbs_types_bases_instance_t *node = (rbs_types_bases_instance_t *) instance;
|
|
795
1210
|
|
|
796
1211
|
VALUE h = rb_hash_new();
|
|
797
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1212
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
798
1213
|
|
|
799
1214
|
return CLASS_NEW_INSTANCE(
|
|
800
1215
|
RBS_Types_Bases_Instance,
|
|
@@ -806,7 +1221,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
806
1221
|
rbs_types_bases_nil_t *node = (rbs_types_bases_nil_t *) instance;
|
|
807
1222
|
|
|
808
1223
|
VALUE h = rb_hash_new();
|
|
809
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1224
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
810
1225
|
|
|
811
1226
|
return CLASS_NEW_INSTANCE(
|
|
812
1227
|
RBS_Types_Bases_Nil,
|
|
@@ -818,7 +1233,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
818
1233
|
rbs_types_bases_self_t *node = (rbs_types_bases_self_t *) instance;
|
|
819
1234
|
|
|
820
1235
|
VALUE h = rb_hash_new();
|
|
821
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1236
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
822
1237
|
|
|
823
1238
|
return CLASS_NEW_INSTANCE(
|
|
824
1239
|
RBS_Types_Bases_Self,
|
|
@@ -830,7 +1245,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
830
1245
|
rbs_types_bases_top_t *node = (rbs_types_bases_top_t *) instance;
|
|
831
1246
|
|
|
832
1247
|
VALUE h = rb_hash_new();
|
|
833
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1248
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
834
1249
|
|
|
835
1250
|
return CLASS_NEW_INSTANCE(
|
|
836
1251
|
RBS_Types_Bases_Top,
|
|
@@ -842,7 +1257,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
842
1257
|
rbs_types_bases_void_t *node = (rbs_types_bases_void_t *) instance;
|
|
843
1258
|
|
|
844
1259
|
VALUE h = rb_hash_new();
|
|
845
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1260
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
846
1261
|
|
|
847
1262
|
return CLASS_NEW_INSTANCE(
|
|
848
1263
|
RBS_Types_Bases_Void,
|
|
@@ -854,7 +1269,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
854
1269
|
rbs_types_block_t *node = (rbs_types_block_t *) instance;
|
|
855
1270
|
|
|
856
1271
|
VALUE h = rb_hash_new();
|
|
857
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1272
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
858
1273
|
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
859
1274
|
rb_hash_aset(h, ID2SYM(rb_intern("required")), node->required ? Qtrue : Qfalse);
|
|
860
1275
|
rb_hash_aset(h, ID2SYM(rb_intern("self_type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->self_type)); // rbs_node
|
|
@@ -869,7 +1284,12 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
869
1284
|
rbs_types_class_instance_t *node = (rbs_types_class_instance_t *) instance;
|
|
870
1285
|
|
|
871
1286
|
VALUE h = rb_hash_new();
|
|
872
|
-
|
|
1287
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
1288
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
1289
|
+
rbs_loc_legacy_alloc_children(loc, 2);
|
|
1290
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
1291
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("args"), (rbs_loc_range) { .start = node->args_range.start_char, .end = node->args_range.end_char });
|
|
1292
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
873
1293
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
874
1294
|
rb_hash_aset(h, ID2SYM(rb_intern("args")), rbs_node_list_to_ruby_array(ctx, node->args));
|
|
875
1295
|
|
|
@@ -883,8 +1303,14 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
883
1303
|
rbs_types_class_singleton_t *node = (rbs_types_class_singleton_t *) instance;
|
|
884
1304
|
|
|
885
1305
|
VALUE h = rb_hash_new();
|
|
886
|
-
|
|
1306
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
1307
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
1308
|
+
rbs_loc_legacy_alloc_children(loc, 2);
|
|
1309
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
1310
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("args"), (rbs_loc_range) { .start = node->args_range.start_char, .end = node->args_range.end_char });
|
|
1311
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
887
1312
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
1313
|
+
rb_hash_aset(h, ID2SYM(rb_intern("args")), rbs_node_list_to_ruby_array(ctx, node->args));
|
|
888
1314
|
|
|
889
1315
|
return CLASS_NEW_INSTANCE(
|
|
890
1316
|
RBS_Types_ClassSingleton,
|
|
@@ -915,7 +1341,11 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
915
1341
|
rbs_types_function_param_t *node = (rbs_types_function_param_t *) instance;
|
|
916
1342
|
|
|
917
1343
|
VALUE h = rb_hash_new();
|
|
918
|
-
|
|
1344
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
1345
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
1346
|
+
rbs_loc_legacy_alloc_children(loc, 1);
|
|
1347
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
1348
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
919
1349
|
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
920
1350
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_ast_symbol
|
|
921
1351
|
|
|
@@ -929,7 +1359,12 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
929
1359
|
rbs_types_interface_t *node = (rbs_types_interface_t *) instance;
|
|
930
1360
|
|
|
931
1361
|
VALUE h = rb_hash_new();
|
|
932
|
-
|
|
1362
|
+
VALUE location = rbs_location_range_to_ruby_location(ctx, node->base.location);
|
|
1363
|
+
rbs_loc *loc = rbs_check_location(location);
|
|
1364
|
+
rbs_loc_legacy_alloc_children(loc, 2);
|
|
1365
|
+
rbs_loc_legacy_add_required_child(loc, rb_intern("name"), (rbs_loc_range) { .start = node->name_range.start_char, .end = node->name_range.end_char });
|
|
1366
|
+
rbs_loc_legacy_add_optional_child(loc, rb_intern("args"), (rbs_loc_range) { .start = node->args_range.start_char, .end = node->args_range.end_char });
|
|
1367
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), location);
|
|
933
1368
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_type_name
|
|
934
1369
|
rb_hash_aset(h, ID2SYM(rb_intern("args")), rbs_node_list_to_ruby_array(ctx, node->args));
|
|
935
1370
|
|
|
@@ -943,7 +1378,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
943
1378
|
rbs_types_intersection_t *node = (rbs_types_intersection_t *) instance;
|
|
944
1379
|
|
|
945
1380
|
VALUE h = rb_hash_new();
|
|
946
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1381
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
947
1382
|
rb_hash_aset(h, ID2SYM(rb_intern("types")), rbs_node_list_to_ruby_array(ctx, node->types));
|
|
948
1383
|
|
|
949
1384
|
return CLASS_NEW_INSTANCE(
|
|
@@ -956,7 +1391,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
956
1391
|
rbs_types_literal_t *node = (rbs_types_literal_t *) instance;
|
|
957
1392
|
|
|
958
1393
|
VALUE h = rb_hash_new();
|
|
959
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1394
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
960
1395
|
rb_hash_aset(h, ID2SYM(rb_intern("literal")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->literal)); // rbs_node
|
|
961
1396
|
|
|
962
1397
|
return CLASS_NEW_INSTANCE(
|
|
@@ -969,7 +1404,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
969
1404
|
rbs_types_optional_t *node = (rbs_types_optional_t *) instance;
|
|
970
1405
|
|
|
971
1406
|
VALUE h = rb_hash_new();
|
|
972
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1407
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
973
1408
|
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
974
1409
|
|
|
975
1410
|
return CLASS_NEW_INSTANCE(
|
|
@@ -982,7 +1417,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
982
1417
|
rbs_types_proc_t *node = (rbs_types_proc_t *) instance;
|
|
983
1418
|
|
|
984
1419
|
VALUE h = rb_hash_new();
|
|
985
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1420
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
986
1421
|
rb_hash_aset(h, ID2SYM(rb_intern("type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->type)); // rbs_node
|
|
987
1422
|
rb_hash_aset(h, ID2SYM(rb_intern("block")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->block)); // rbs_types_block
|
|
988
1423
|
rb_hash_aset(h, ID2SYM(rb_intern("self_type")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->self_type)); // rbs_node
|
|
@@ -997,7 +1432,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
997
1432
|
rbs_types_record_t *node = (rbs_types_record_t *) instance;
|
|
998
1433
|
|
|
999
1434
|
VALUE h = rb_hash_new();
|
|
1000
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1435
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
1001
1436
|
rb_hash_aset(h, ID2SYM(rb_intern("all_fields")), rbs_hash_to_ruby_hash(ctx, node->all_fields));
|
|
1002
1437
|
|
|
1003
1438
|
return CLASS_NEW_INSTANCE(
|
|
@@ -1018,7 +1453,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
1018
1453
|
rbs_types_tuple_t *node = (rbs_types_tuple_t *) instance;
|
|
1019
1454
|
|
|
1020
1455
|
VALUE h = rb_hash_new();
|
|
1021
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1456
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
1022
1457
|
rb_hash_aset(h, ID2SYM(rb_intern("types")), rbs_node_list_to_ruby_array(ctx, node->types));
|
|
1023
1458
|
|
|
1024
1459
|
return CLASS_NEW_INSTANCE(
|
|
@@ -1031,7 +1466,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
1031
1466
|
rbs_types_union_t *node = (rbs_types_union_t *) instance;
|
|
1032
1467
|
|
|
1033
1468
|
VALUE h = rb_hash_new();
|
|
1034
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1469
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
1035
1470
|
rb_hash_aset(h, ID2SYM(rb_intern("types")), rbs_node_list_to_ruby_array(ctx, node->types));
|
|
1036
1471
|
|
|
1037
1472
|
return CLASS_NEW_INSTANCE(
|
|
@@ -1056,7 +1491,7 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
1056
1491
|
rbs_types_variable_t *node = (rbs_types_variable_t *) instance;
|
|
1057
1492
|
|
|
1058
1493
|
VALUE h = rb_hash_new();
|
|
1059
|
-
rb_hash_aset(h, ID2SYM(rb_intern("location")),
|
|
1494
|
+
rb_hash_aset(h, ID2SYM(rb_intern("location")), rbs_location_range_to_ruby_location(ctx, node->base.location));
|
|
1060
1495
|
rb_hash_aset(h, ID2SYM(rb_intern("name")), rbs_struct_to_ruby_value(ctx, (rbs_node_t *) node->name)); // rbs_ast_symbol
|
|
1061
1496
|
|
|
1062
1497
|
return CLASS_NEW_INSTANCE(
|
|
@@ -1065,15 +1500,8 @@ VALUE rbs_struct_to_ruby_value(rbs_translation_context_t ctx, rbs_node_t *instan
|
|
|
1065
1500
|
&h
|
|
1066
1501
|
);
|
|
1067
1502
|
}
|
|
1068
|
-
case RBS_KEYWORD: {
|
|
1069
|
-
rbs_constant_t *constant = rbs_constant_pool_id_to_constant(RBS_GLOBAL_CONSTANT_POOL, ((rbs_keyword_t *) instance)->constant_id);
|
|
1070
|
-
assert(constant != NULL && "constant is NULL");
|
|
1071
|
-
assert(constant->start != NULL && "constant->start is NULL");
|
|
1072
|
-
|
|
1073
|
-
return ID2SYM(rb_intern2((const char *) constant->start, constant->length));
|
|
1074
|
-
}
|
|
1075
1503
|
case RBS_AST_SYMBOL: {
|
|
1076
|
-
rbs_constant_t *constant = rbs_constant_pool_id_to_constant(ctx.constant_pool, ((
|
|
1504
|
+
rbs_constant_t *constant = rbs_constant_pool_id_to_constant(ctx.constant_pool, ((rbs_ast_symbol_t *) instance)->constant_id);
|
|
1077
1505
|
assert(constant != NULL && "constant is NULL");
|
|
1078
1506
|
assert(constant->start != NULL && "constant->start is NULL");
|
|
1079
1507
|
|