rbs 3.10.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 +7 -5
- data/.github/workflows/comments.yml +2 -2
- data/.github/workflows/dependabot.yml +2 -2
- data/.github/workflows/ruby.yml +16 -26
- data/.github/workflows/rust.yml +95 -0
- data/.github/workflows/typecheck.yml +1 -1
- data/.github/workflows/windows.yml +2 -2
- data/.rubocop.yml +2 -2
- data/.vscode/extensions.json +5 -0
- data/.vscode/settings.json +19 -0
- data/CHANGELOG.md +202 -2
- data/Rakefile +9 -23
- data/Steepfile +2 -0
- data/config.yml +457 -13
- data/core/array.rbs +218 -188
- 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 +45 -31
- data/core/complex.rbs +66 -55
- data/core/dir.rbs +57 -45
- data/core/encoding.rbs +6 -6
- data/core/enumerable.rbs +105 -91
- data/core/enumerator/arithmetic_sequence.rbs +70 -0
- data/core/enumerator.rbs +24 -3
- data/core/errno.rbs +3 -2
- data/core/errors.rbs +31 -29
- data/core/exception.rbs +12 -12
- data/core/fiber.rbs +47 -36
- data/core/file.rbs +242 -169
- data/core/file_test.rbs +2 -2
- data/core/float.rbs +42 -68
- data/core/gc.rbs +78 -70
- data/core/hash.rbs +70 -60
- data/core/integer.rbs +32 -75
- data/core/io/buffer.rbs +36 -36
- data/core/io/wait.rbs +7 -7
- data/core/io.rbs +192 -146
- data/core/kernel.rbs +198 -147
- data/core/marshal.rbs +3 -3
- data/core/match_data.rbs +14 -12
- data/core/math.rbs +69 -67
- data/core/method.rbs +6 -8
- data/core/module.rbs +148 -88
- data/core/nil_class.rbs +4 -3
- data/core/numeric.rbs +53 -50
- data/core/object.rbs +6 -8
- data/core/object_space.rbs +11 -10
- data/core/pathname.rbs +131 -81
- data/core/proc.rbs +65 -34
- data/core/process.rbs +221 -201
- data/core/ractor.rbs +15 -11
- data/core/random.rbs +21 -3
- data/core/range.rbs +152 -49
- data/core/rational.rbs +5 -56
- data/core/rbs/unnamed/argf.rbs +58 -51
- data/core/rbs/unnamed/env_class.rbs +18 -13
- data/core/rbs/unnamed/main_class.rbs +123 -0
- data/core/rbs/unnamed/random.rbs +7 -116
- data/core/regexp.rbs +236 -197
- data/core/ruby.rbs +1 -1
- data/core/ruby_vm.rbs +32 -30
- data/core/rubygems/config_file.rbs +5 -5
- data/core/rubygems/errors.rbs +1 -1
- data/core/rubygems/requirement.rbs +5 -5
- data/core/rubygems/rubygems.rbs +5 -3
- data/core/set.rbs +17 -16
- data/core/signal.rbs +2 -2
- data/core/string.rbs +318 -298
- data/core/struct.rbs +26 -25
- data/core/symbol.rbs +25 -24
- data/core/thread.rbs +40 -41
- data/core/time.rbs +47 -42
- data/core/trace_point.rbs +34 -31
- data/core/true_class.rbs +2 -2
- data/core/unbound_method.rbs +10 -10
- data/core/warning.rbs +7 -7
- data/docs/collection.md +1 -1
- data/docs/config.md +171 -0
- data/docs/inline.md +576 -0
- 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 +595 -98
- data/ext/rbs_extension/class_constants.c +30 -0
- data/ext/rbs_extension/class_constants.h +15 -0
- data/ext/rbs_extension/legacy_location.c +30 -53
- data/ext/rbs_extension/legacy_location.h +37 -0
- data/ext/rbs_extension/main.c +125 -24
- data/include/rbs/ast.h +485 -150
- data/include/rbs/lexer.h +11 -4
- data/include/rbs/location.h +25 -44
- data/include/rbs/parser.h +20 -2
- data/include/rbs/util/rbs_constant_pool.h +0 -3
- 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 +409 -0
- data/lib/rbs/ast/ruby/comment_block.rb +245 -0
- data/lib/rbs/ast/ruby/declarations.rb +281 -0
- data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
- data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
- data/lib/rbs/ast/ruby/members.rb +723 -0
- data/lib/rbs/ast/type_param.rb +24 -4
- data/lib/rbs/buffer.rb +105 -20
- data/lib/rbs/cli/diff.rb +16 -15
- data/lib/rbs/cli/validate.rb +62 -125
- data/lib/rbs/cli.rb +55 -23
- data/lib/rbs/collection/config/lockfile_generator.rb +8 -4
- data/lib/rbs/collection/sources/git.rb +1 -0
- data/lib/rbs/collection.rb +0 -1
- data/lib/rbs/definition.rb +6 -1
- data/lib/rbs/definition_builder/ancestor_builder.rb +119 -63
- data/lib/rbs/definition_builder/method_builder.rb +65 -30
- data/lib/rbs/definition_builder.rb +177 -20
- data/lib/rbs/diff.rb +7 -1
- data/lib/rbs/environment/class_entry.rb +69 -0
- data/lib/rbs/environment/module_entry.rb +66 -0
- data/lib/rbs/environment.rb +338 -155
- data/lib/rbs/environment_loader.rb +2 -2
- data/lib/rbs/errors.rb +30 -20
- data/lib/rbs/inline_parser/comment_association.rb +117 -0
- data/lib/rbs/inline_parser.rb +542 -0
- data/lib/rbs/location_aux.rb +36 -4
- data/lib/rbs/locator.rb +5 -1
- data/lib/rbs/method_type.rb +5 -3
- data/lib/rbs/namespace.rb +0 -7
- data/lib/rbs/parser_aux.rb +31 -8
- 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 +10 -2
- data/lib/rbs/resolver/type_name_resolver.rb +0 -8
- data/lib/rbs/source.rb +99 -0
- data/lib/rbs/subtractor.rb +4 -3
- data/lib/rbs/test/type_check.rb +5 -2
- data/lib/rbs/type_name.rb +1 -8
- data/lib/rbs/types.rb +88 -78
- data/lib/rbs/unit_test/convertibles.rb +1 -0
- 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 +12 -1
- data/rbs.gemspec +3 -2
- 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/ancestor_builder.rbs +1 -1
- data/sig/ast/ruby/annotations.rbs +421 -0
- data/sig/ast/ruby/comment_block.rbs +127 -0
- data/sig/ast/ruby/declarations.rbs +158 -0
- data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
- data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
- data/sig/ast/ruby/members.rbs +178 -0
- data/sig/buffer.rbs +63 -5
- 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 -0
- data/sig/definition_builder.rbs +3 -1
- data/sig/environment/class_entry.rbs +50 -0
- data/sig/environment/module_entry.rbs +50 -0
- data/sig/environment.rbs +37 -81
- data/sig/errors.rbs +26 -20
- data/sig/inline_parser/comment_association.rbs +71 -0
- data/sig/inline_parser.rbs +124 -0
- data/sig/location.rbs +32 -7
- data/sig/locator.rbs +0 -2
- data/sig/method_builder.rbs +9 -4
- data/sig/namespace.rbs +0 -5
- data/sig/parser.rbs +47 -13
- data/sig/prototype/helpers.rbs +2 -0
- data/sig/resolver/type_name_resolver.rbs +0 -3
- data/sig/source.rbs +48 -0
- data/sig/type_param.rbs +13 -8
- data/sig/typename.rbs +0 -5
- 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 +491 -143
- data/src/lexer.c +1552 -1314
- data/src/lexer.re +7 -0
- data/src/lexstate.c +8 -1
- data/src/location.c +8 -48
- data/src/parser.c +1107 -409
- data/src/util/rbs_constant_pool.c +0 -4
- data/stdlib/bigdecimal/0/big_decimal.rbs +16 -16
- data/stdlib/cgi-escape/0/escape.rbs +4 -4
- data/stdlib/coverage/0/coverage.rbs +4 -3
- data/stdlib/date/0/date.rbs +33 -28
- data/stdlib/date/0/date_time.rbs +24 -23
- 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 +64 -53
- data/stdlib/etc/0/etc.rbs +55 -50
- data/stdlib/fileutils/0/fileutils.rbs +140 -126
- data/stdlib/forwardable/0/forwardable.rbs +10 -10
- data/stdlib/io-console/0/io-console.rbs +2 -2
- data/stdlib/json/0/json.rbs +158 -131
- data/stdlib/monitor/0/monitor.rbs +3 -3
- data/stdlib/net-http/0/net-http.rbs +159 -134
- data/stdlib/objspace/0/objspace.rbs +8 -30
- data/stdlib/open-uri/0/open-uri.rbs +8 -8
- data/stdlib/open3/0/open3.rbs +469 -10
- data/stdlib/openssl/0/openssl.rbs +144 -129
- data/stdlib/optparse/0/optparse.rbs +23 -14
- data/stdlib/pathname/0/pathname.rbs +2 -2
- 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 +62 -9
- 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/store.rbs +1 -1
- data/stdlib/ripper/0/ripper.rbs +20 -17
- 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/socket/0/addrinfo.rbs +9 -9
- data/stdlib/socket/0/basic_socket.rbs +3 -3
- data/stdlib/socket/0/ip_socket.rbs +10 -8
- data/stdlib/socket/0/socket.rbs +10 -9
- data/stdlib/socket/0/tcp_server.rbs +1 -1
- data/stdlib/socket/0/tcp_socket.rbs +1 -1
- data/stdlib/socket/0/udp_socket.rbs +1 -1
- data/stdlib/socket/0/unix_server.rbs +1 -1
- data/stdlib/stringio/0/stringio.rbs +55 -54
- data/stdlib/strscan/0/string_scanner.rbs +46 -44
- data/stdlib/tempfile/0/tempfile.rbs +24 -20
- data/stdlib/time/0/time.rbs +7 -5
- data/stdlib/tsort/0/tsort.rbs +7 -6
- data/stdlib/uri/0/common.rbs +31 -18
- data/stdlib/uri/0/file.rbs +2 -2
- data/stdlib/uri/0/generic.rbs +9 -2
- 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 +6 -5
- 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
- metadata +66 -3
data/src/lexer.re
CHANGED
|
@@ -44,8 +44,10 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
|
|
|
44
44
|
":" { return rbs_next_token(lexer, pCOLON); }
|
|
45
45
|
"::" { return rbs_next_token(lexer, pCOLON2); }
|
|
46
46
|
"<" { return rbs_next_token(lexer, pLT); }
|
|
47
|
+
">" { return rbs_next_token(lexer, pGT); }
|
|
47
48
|
"[]" { return rbs_next_token(lexer, pAREF_OPR); }
|
|
48
49
|
operator { return rbs_next_token(lexer, tOPERATOR); }
|
|
50
|
+
"--" [^\x00]* { return rbs_next_token(lexer, tINLINECOMMENT); }
|
|
49
51
|
|
|
50
52
|
number = [0-9] [0-9_]*;
|
|
51
53
|
("-"|"+")? number { return rbs_next_token(lexer, tINTEGER); }
|
|
@@ -70,6 +72,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
|
|
|
70
72
|
"bool" { return rbs_next_token(lexer, kBOOL); }
|
|
71
73
|
"bot" { return rbs_next_token(lexer, kBOT); }
|
|
72
74
|
"class" { return rbs_next_token(lexer, kCLASS); }
|
|
75
|
+
"class-alias" { return rbs_next_token(lexer, kCLASSALIAS); }
|
|
73
76
|
"def" { return rbs_next_token(lexer, kDEF); }
|
|
74
77
|
"end" { return rbs_next_token(lexer, kEND); }
|
|
75
78
|
"extend" { return rbs_next_token(lexer, kEXTEND); }
|
|
@@ -79,6 +82,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
|
|
|
79
82
|
"instance" { return rbs_next_token(lexer, kINSTANCE); }
|
|
80
83
|
"interface" { return rbs_next_token(lexer, kINTERFACE); }
|
|
81
84
|
"module" { return rbs_next_token(lexer, kMODULE); }
|
|
85
|
+
"module-alias" { return rbs_next_token(lexer, kMODULEALIAS); }
|
|
82
86
|
"nil" { return rbs_next_token(lexer, kNIL); }
|
|
83
87
|
"out" { return rbs_next_token(lexer, kOUT); }
|
|
84
88
|
"prepend" { return rbs_next_token(lexer, kPREPEND); }
|
|
@@ -95,6 +99,9 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
|
|
|
95
99
|
"use" { return rbs_next_token(lexer, kUSE); }
|
|
96
100
|
"as" { return rbs_next_token(lexer, kAS); }
|
|
97
101
|
"__todo__" { return rbs_next_token(lexer, k__TODO__); }
|
|
102
|
+
"@rbs" { return rbs_next_token(lexer, kATRBS); }
|
|
103
|
+
"skip" { return rbs_next_token(lexer, kSKIP); }
|
|
104
|
+
"return" { return rbs_next_token(lexer, kRETURN); }
|
|
98
105
|
|
|
99
106
|
unicode_char = "\\u" [0-9a-fA-F]{4};
|
|
100
107
|
oct_char = "\\x" [0-9a-f]{1,2};
|
data/src/lexstate.c
CHANGED
|
@@ -28,6 +28,7 @@ static const char *RBS_TOKENTYPE_NAMES[] = {
|
|
|
28
28
|
"pBANG", /* ! */
|
|
29
29
|
"pQUESTION", /* ? */
|
|
30
30
|
"pLT", /* < */
|
|
31
|
+
"pGT", /* > */
|
|
31
32
|
"pEQ", /* = */
|
|
32
33
|
|
|
33
34
|
"kALIAS", /* alias */
|
|
@@ -37,6 +38,7 @@ static const char *RBS_TOKENTYPE_NAMES[] = {
|
|
|
37
38
|
"kBOOL", /* bool */
|
|
38
39
|
"kBOT", /* bot */
|
|
39
40
|
"kCLASS", /* class */
|
|
41
|
+
"kCLASSALIAS", /* class-alias */
|
|
40
42
|
"kDEF", /* def */
|
|
41
43
|
"kEND", /* end */
|
|
42
44
|
"kEXTEND", /* extend */
|
|
@@ -46,6 +48,7 @@ static const char *RBS_TOKENTYPE_NAMES[] = {
|
|
|
46
48
|
"kINSTANCE", /* instance */
|
|
47
49
|
"kINTERFACE", /* interface */
|
|
48
50
|
"kMODULE", /* module */
|
|
51
|
+
"kMODULEALIAS", /* module-alias */
|
|
49
52
|
"kNIL", /* nil */
|
|
50
53
|
"kOUT", /* out */
|
|
51
54
|
"kPREPEND", /* prepend */
|
|
@@ -62,6 +65,9 @@ static const char *RBS_TOKENTYPE_NAMES[] = {
|
|
|
62
65
|
"kUSE", /* use */
|
|
63
66
|
"kAS", /* as */
|
|
64
67
|
"k__TODO__", /* __todo__ */
|
|
68
|
+
"kATRBS", /* @rbs */
|
|
69
|
+
"kSKIP", /* skip */
|
|
70
|
+
"kRETURN", /* return */
|
|
65
71
|
|
|
66
72
|
"tLIDENT", /* Identifiers starting with lower case */
|
|
67
73
|
"tUIDENT", /* Identifiers starting with upper case */
|
|
@@ -78,6 +84,7 @@ static const char *RBS_TOKENTYPE_NAMES[] = {
|
|
|
78
84
|
|
|
79
85
|
"tCOMMENT",
|
|
80
86
|
"tLINECOMMENT",
|
|
87
|
+
"tINLINECOMMENT",
|
|
81
88
|
|
|
82
89
|
"tTRIVIA",
|
|
83
90
|
|
|
@@ -111,7 +118,7 @@ unsigned int rbs_peek(rbs_lexer_t *lexer) {
|
|
|
111
118
|
}
|
|
112
119
|
|
|
113
120
|
bool rbs_next_char(rbs_lexer_t *lexer, unsigned int *codepoint, size_t *byte_len) {
|
|
114
|
-
if (RBS_UNLIKELY(lexer->current.
|
|
121
|
+
if (RBS_UNLIKELY(lexer->current.byte_pos == lexer->end_pos)) {
|
|
115
122
|
return false;
|
|
116
123
|
}
|
|
117
124
|
|
data/src/location.c
CHANGED
|
@@ -1,48 +1,8 @@
|
|
|
1
1
|
#include "rbs/location.h"
|
|
2
|
-
#include "rbs/util/rbs_assert.h"
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
void rbs_loc_alloc_children(rbs_allocator_t *allocator, rbs_location_t *loc, size_t capacity) {
|
|
9
|
-
RBS_ASSERT(capacity <= sizeof(rbs_loc_entry_bitmap) * 8, "Capacity %zu is too large. Max is %zu", capacity, sizeof(rbs_loc_entry_bitmap) * 8);
|
|
10
|
-
|
|
11
|
-
loc->children = (rbs_loc_children *) rbs_allocator_malloc_impl(allocator, RBS_LOC_CHILDREN_SIZE(capacity), rbs_alignof(rbs_loc_children));
|
|
12
|
-
|
|
13
|
-
loc->children->len = 0;
|
|
14
|
-
loc->children->required_p = 0;
|
|
15
|
-
loc->children->cap = capacity;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
void rbs_loc_add_optional_child(rbs_location_t *loc, rbs_constant_id_t name, rbs_range_t r) {
|
|
19
|
-
RBS_ASSERT(loc->children != NULL, "All children should have been pre-allocated with rbs_loc_alloc_children()");
|
|
20
|
-
RBS_ASSERT((loc->children->len + 1 <= loc->children->cap), "Not enough space was pre-allocated for the children. Children: %hu, Capacity: %hu", loc->children->len, loc->children->cap);
|
|
21
|
-
|
|
22
|
-
unsigned short i = loc->children->len++;
|
|
23
|
-
loc->children->entries[i].name = name;
|
|
24
|
-
loc->children->entries[i].rg = (rbs_loc_range) { r.start.char_pos, r.end.char_pos };
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
void rbs_loc_add_required_child(rbs_location_t *loc, rbs_constant_id_t name, rbs_range_t r) {
|
|
28
|
-
rbs_loc_add_optional_child(loc, name, r);
|
|
29
|
-
unsigned short last_index = loc->children->len - 1;
|
|
30
|
-
loc->children->required_p |= 1 << last_index;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
rbs_location_t *rbs_location_new(rbs_allocator_t *allocator, rbs_range_t rg) {
|
|
34
|
-
rbs_location_t *location = rbs_allocator_alloc(allocator, rbs_location_t);
|
|
35
|
-
*location = (rbs_location_t) {
|
|
36
|
-
.rg = rg,
|
|
37
|
-
.children = NULL,
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
return location;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
rbs_location_list_t *rbs_location_list_new(rbs_allocator_t *allocator) {
|
|
44
|
-
rbs_location_list_t *list = rbs_allocator_alloc(allocator, rbs_location_list_t);
|
|
45
|
-
*list = (rbs_location_list_t) {
|
|
3
|
+
rbs_location_range_list_t *rbs_location_range_list_new(rbs_allocator_t *allocator) {
|
|
4
|
+
rbs_location_range_list_t *list = rbs_allocator_alloc(allocator, rbs_location_range_list_t);
|
|
5
|
+
*list = (rbs_location_range_list_t) {
|
|
46
6
|
.allocator = allocator,
|
|
47
7
|
.head = NULL,
|
|
48
8
|
.tail = NULL,
|
|
@@ -52,10 +12,10 @@ rbs_location_list_t *rbs_location_list_new(rbs_allocator_t *allocator) {
|
|
|
52
12
|
return list;
|
|
53
13
|
}
|
|
54
14
|
|
|
55
|
-
void
|
|
56
|
-
|
|
57
|
-
*node = (
|
|
58
|
-
.
|
|
15
|
+
void rbs_location_range_list_append(rbs_location_range_list_t *list, rbs_location_range range) {
|
|
16
|
+
rbs_location_range_list_node_t *node = rbs_allocator_alloc(list->allocator, rbs_location_range_list_node_t);
|
|
17
|
+
*node = (rbs_location_range_list_node_t) {
|
|
18
|
+
.range = range,
|
|
59
19
|
.next = NULL,
|
|
60
20
|
};
|
|
61
21
|
|
|
@@ -68,4 +28,4 @@ void rbs_location_list_append(rbs_location_list_t *list, rbs_location_t *loc) {
|
|
|
68
28
|
}
|
|
69
29
|
|
|
70
30
|
list->length++;
|
|
71
|
-
}
|
|
31
|
+
}
|