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/include/rbs/lexer.h
CHANGED
|
@@ -30,6 +30,7 @@ enum RBSTokenType {
|
|
|
30
30
|
pBANG, /* ! */
|
|
31
31
|
pQUESTION, /* ? */
|
|
32
32
|
pLT, /* < */
|
|
33
|
+
pGT, /* > */
|
|
33
34
|
pEQ, /* = */
|
|
34
35
|
|
|
35
36
|
kALIAS, /* alias */
|
|
@@ -39,6 +40,7 @@ enum RBSTokenType {
|
|
|
39
40
|
kBOOL, /* bool */
|
|
40
41
|
kBOT, /* bot */
|
|
41
42
|
kCLASS, /* class */
|
|
43
|
+
kCLASSALIAS, /* class-alias */
|
|
42
44
|
kDEF, /* def */
|
|
43
45
|
kEND, /* end */
|
|
44
46
|
kEXTEND, /* extend */
|
|
@@ -48,6 +50,7 @@ enum RBSTokenType {
|
|
|
48
50
|
kINSTANCE, /* instance */
|
|
49
51
|
kINTERFACE, /* interface */
|
|
50
52
|
kMODULE, /* module */
|
|
53
|
+
kMODULEALIAS, /* module-alias */
|
|
51
54
|
kNIL, /* nil */
|
|
52
55
|
kOUT, /* out */
|
|
53
56
|
kPREPEND, /* prepend */
|
|
@@ -64,6 +67,9 @@ enum RBSTokenType {
|
|
|
64
67
|
kUSE, /* use */
|
|
65
68
|
kAS, /* as */
|
|
66
69
|
k__TODO__, /* __todo__ */
|
|
70
|
+
kATRBS, /* @rbs */
|
|
71
|
+
kSKIP, /* skip */
|
|
72
|
+
kRETURN, /* return */
|
|
67
73
|
|
|
68
74
|
tLIDENT, /* Identifiers starting with lower case */
|
|
69
75
|
tUIDENT, /* Identifiers starting with upper case */
|
|
@@ -78,8 +84,9 @@ enum RBSTokenType {
|
|
|
78
84
|
pAREF_OPR, /* [] */
|
|
79
85
|
tOPERATOR, /* Operator identifier */
|
|
80
86
|
|
|
81
|
-
tCOMMENT,
|
|
82
|
-
tLINECOMMENT,
|
|
87
|
+
tCOMMENT, /* Comment */
|
|
88
|
+
tLINECOMMENT, /* Comment of all line */
|
|
89
|
+
tINLINECOMMENT, /* Comment in inline decl starting with -- */
|
|
83
90
|
|
|
84
91
|
tTRIVIA, /* Trivia tokens -- space and new line */
|
|
85
92
|
|
|
@@ -129,8 +136,8 @@ typedef struct {
|
|
|
129
136
|
* */
|
|
130
137
|
typedef struct {
|
|
131
138
|
rbs_string_t string;
|
|
132
|
-
int start_pos; /* The
|
|
133
|
-
int end_pos; /* The
|
|
139
|
+
int start_pos; /* The byte position that defines the start of the input */
|
|
140
|
+
int end_pos; /* The byte position that defines the end of the input */
|
|
134
141
|
rbs_position_t current; /* The current position: just before the current_character */
|
|
135
142
|
rbs_position_t start; /* The start position of the current token */
|
|
136
143
|
|
data/include/rbs/location.h
CHANGED
|
@@ -1,59 +1,40 @@
|
|
|
1
1
|
#ifndef RBS__RBS_LOCATION_H
|
|
2
2
|
#define RBS__RBS_LOCATION_H
|
|
3
3
|
|
|
4
|
-
#include "lexer.h"
|
|
5
|
-
|
|
6
|
-
#include "rbs/util/rbs_constant_pool.h"
|
|
7
4
|
#include "rbs/util/rbs_allocator.h"
|
|
8
5
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
#define RBS_LOCATION_NULL_RANGE ((rbs_location_range) { -1, -1, -1, -1 })
|
|
7
|
+
#define RBS_LOCATION_NULL_RANGE_P(rg) ((rg).start_char == -1)
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Converts a lexer range (rbs_range_t) to an AST location range (rbs_location_range) by extracting character and byte positions.
|
|
11
|
+
*/
|
|
12
|
+
#define RBS_RANGE_LEX2AST(rg) ((rbs_location_range) { .start_char = (rg).start.char_pos, .start_byte = (rg).start.byte_pos, .end_char = (rg).end.char_pos, .end_byte = (rg).end.byte_pos })
|
|
13
13
|
|
|
14
14
|
typedef struct {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
} rbs_loc_entry;
|
|
15
|
+
int start_char;
|
|
16
|
+
int start_byte;
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
int end_char;
|
|
19
|
+
int end_byte;
|
|
20
|
+
} rbs_location_range;
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
rbs_loc_entry entries[1];
|
|
28
|
-
} rbs_loc_children;
|
|
29
|
-
|
|
30
|
-
typedef struct rbs_location {
|
|
31
|
-
rbs_range_t rg;
|
|
32
|
-
rbs_loc_children *children;
|
|
33
|
-
} rbs_location_t;
|
|
34
|
-
|
|
35
|
-
typedef struct rbs_location_list_node {
|
|
36
|
-
rbs_location_t *loc;
|
|
37
|
-
struct rbs_location_list_node *next;
|
|
38
|
-
} rbs_location_list_node_t;
|
|
39
|
-
|
|
40
|
-
typedef struct rbs_location_list {
|
|
22
|
+
typedef struct rbs_location_range_list_node {
|
|
23
|
+
rbs_location_range range;
|
|
24
|
+
struct rbs_location_range_list_node *next;
|
|
25
|
+
} rbs_location_range_list_node_t;
|
|
26
|
+
|
|
27
|
+
typedef struct rbs_location_range_list {
|
|
41
28
|
rbs_allocator_t *allocator;
|
|
42
|
-
|
|
43
|
-
|
|
29
|
+
struct rbs_location_range_list_node *head;
|
|
30
|
+
struct rbs_location_range_list_node *tail;
|
|
44
31
|
size_t length;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
void rbs_loc_alloc_children(rbs_allocator_t *, rbs_location_t *loc, size_t capacity);
|
|
48
|
-
void rbs_loc_add_required_child(rbs_location_t *loc, rbs_constant_id_t name, rbs_range_t r);
|
|
49
|
-
void rbs_loc_add_optional_child(rbs_location_t *loc, rbs_constant_id_t name, rbs_range_t r);
|
|
32
|
+
} rbs_location_range_list_t;
|
|
50
33
|
|
|
51
34
|
/**
|
|
52
|
-
* Allocate new
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
rbs_location_list_t *rbs_location_list_new(rbs_allocator_t *allocator);
|
|
57
|
-
void rbs_location_list_append(rbs_location_list_t *list, rbs_location_t *loc);
|
|
35
|
+
* Allocate new rbs_location_range_list_t object through the given allocator.
|
|
36
|
+
*/
|
|
37
|
+
rbs_location_range_list_t *rbs_location_range_list_new(rbs_allocator_t *allocator);
|
|
38
|
+
void rbs_location_range_list_append(rbs_location_range_list_t *list, rbs_location_range range);
|
|
58
39
|
|
|
59
40
|
#endif
|
data/include/rbs/parser.h
CHANGED
|
@@ -126,10 +126,28 @@ rbs_ast_comment_t *rbs_parser_get_comment(rbs_parser_t *parser, int subject_line
|
|
|
126
126
|
|
|
127
127
|
void rbs_parser_set_error(rbs_parser_t *parser, rbs_token_t tok, bool syntax_error, const char *fmt, ...) RBS_ATTRIBUTE_FORMAT(4, 5);
|
|
128
128
|
|
|
129
|
-
bool rbs_parse_type(rbs_parser_t *parser, rbs_node_t **type);
|
|
130
|
-
bool rbs_parse_method_type(rbs_parser_t *parser, rbs_method_type_t **method_type, bool require_eof);
|
|
129
|
+
bool rbs_parse_type(rbs_parser_t *parser, rbs_node_t **type, bool void_allowed, bool self_allowed, bool classish_allowed);
|
|
130
|
+
bool rbs_parse_method_type(rbs_parser_t *parser, rbs_method_type_t **method_type, bool require_eof, bool classish_allowed);
|
|
131
131
|
bool rbs_parse_signature(rbs_parser_t *parser, rbs_signature_t **signature);
|
|
132
132
|
|
|
133
133
|
bool rbs_parse_type_params(rbs_parser_t *parser, bool module_type_params, rbs_node_list_t **params);
|
|
134
134
|
|
|
135
|
+
/**
|
|
136
|
+
* Parse an inline leading annotation from a string.
|
|
137
|
+
*
|
|
138
|
+
* @param parser The parser to use
|
|
139
|
+
* @param annotation Pointer to store the resulting annotation
|
|
140
|
+
* @return true if parsing succeeded, false otherwise
|
|
141
|
+
*/
|
|
142
|
+
bool rbs_parse_inline_leading_annotation(rbs_parser_t *parser, rbs_ast_ruby_annotations_t **annotation);
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Parse an inline trailing annotation from a string.
|
|
146
|
+
*
|
|
147
|
+
* @param parser The parser to use
|
|
148
|
+
* @param annotation Pointer to store the resulting annotation
|
|
149
|
+
* @return true if parsing succeeded, false otherwise
|
|
150
|
+
*/
|
|
151
|
+
bool rbs_parse_inline_trailing_annotation(rbs_parser_t *parser, rbs_ast_ruby_annotations_t **annotation);
|
|
152
|
+
|
|
135
153
|
#endif
|
|
@@ -81,9 +81,6 @@ typedef struct {
|
|
|
81
81
|
uint32_t capacity;
|
|
82
82
|
} rbs_constant_pool_t;
|
|
83
83
|
|
|
84
|
-
// A global constant pool for storing permenant keywords, such as the names of location children in `parser.c`.
|
|
85
|
-
extern rbs_constant_pool_t *RBS_GLOBAL_CONSTANT_POOL;
|
|
86
|
-
|
|
87
84
|
/**
|
|
88
85
|
* Initialize a new constant pool with a given capacity.
|
|
89
86
|
*
|
data/include/rbs.h
CHANGED
data/lib/rbs/ast/annotation.rb
CHANGED
data/lib/rbs/ast/comment.rb
CHANGED
data/lib/rbs/ast/declarations.rb
CHANGED
|
@@ -74,7 +74,7 @@ module RBS
|
|
|
74
74
|
self.class.hash ^ name.hash ^ args.hash
|
|
75
75
|
end
|
|
76
76
|
|
|
77
|
-
def to_json(state =
|
|
77
|
+
def to_json(state = nil)
|
|
78
78
|
{
|
|
79
79
|
name: name,
|
|
80
80
|
args: args,
|
|
@@ -130,7 +130,7 @@ module RBS
|
|
|
130
130
|
self.class.hash ^ name.hash ^ type_params.hash ^ super_class.hash ^ members.hash
|
|
131
131
|
end
|
|
132
132
|
|
|
133
|
-
def to_json(state =
|
|
133
|
+
def to_json(state = nil)
|
|
134
134
|
{
|
|
135
135
|
declaration: :class,
|
|
136
136
|
name: name,
|
|
@@ -166,7 +166,7 @@ module RBS
|
|
|
166
166
|
self.class.hash ^ name.hash ^ args.hash ^ location.hash
|
|
167
167
|
end
|
|
168
168
|
|
|
169
|
-
def to_json(state =
|
|
169
|
+
def to_json(state = nil)
|
|
170
170
|
{
|
|
171
171
|
name: name,
|
|
172
172
|
args: args,
|
|
@@ -231,7 +231,7 @@ module RBS
|
|
|
231
231
|
self.class.hash ^ name.hash ^ type_params.hash ^ self_types.hash ^ members.hash
|
|
232
232
|
end
|
|
233
233
|
|
|
234
|
-
def to_json(state =
|
|
234
|
+
def to_json(state = nil)
|
|
235
235
|
{
|
|
236
236
|
declaration: :module,
|
|
237
237
|
name: name,
|
|
@@ -288,7 +288,7 @@ module RBS
|
|
|
288
288
|
self.class.hash ^ type_params.hash ^ members.hash
|
|
289
289
|
end
|
|
290
290
|
|
|
291
|
-
def to_json(state =
|
|
291
|
+
def to_json(state = nil)
|
|
292
292
|
{
|
|
293
293
|
declaration: :interface,
|
|
294
294
|
name: name,
|
|
@@ -331,7 +331,7 @@ module RBS
|
|
|
331
331
|
self.class.hash ^ name.hash ^ type_params.hash ^ type.hash
|
|
332
332
|
end
|
|
333
333
|
|
|
334
|
-
def to_json(state =
|
|
334
|
+
def to_json(state = nil)
|
|
335
335
|
{
|
|
336
336
|
declaration: :alias,
|
|
337
337
|
name: name,
|
|
@@ -371,7 +371,7 @@ module RBS
|
|
|
371
371
|
self.class.hash ^ name.hash ^ type.hash
|
|
372
372
|
end
|
|
373
373
|
|
|
374
|
-
def to_json(state =
|
|
374
|
+
def to_json(state = nil)
|
|
375
375
|
{
|
|
376
376
|
declaration: :constant,
|
|
377
377
|
name: name,
|
|
@@ -409,7 +409,7 @@ module RBS
|
|
|
409
409
|
self.class.hash ^ name.hash ^ type.hash
|
|
410
410
|
end
|
|
411
411
|
|
|
412
|
-
def to_json(state =
|
|
412
|
+
def to_json(state = nil)
|
|
413
413
|
{
|
|
414
414
|
declaration: :global,
|
|
415
415
|
name: name,
|
|
@@ -445,7 +445,7 @@ module RBS
|
|
|
445
445
|
end
|
|
446
446
|
|
|
447
447
|
class ClassAlias < AliasDecl
|
|
448
|
-
def to_json(state =
|
|
448
|
+
def to_json(state = nil)
|
|
449
449
|
{
|
|
450
450
|
declaration: :class_alias,
|
|
451
451
|
new_name: new_name,
|
|
@@ -457,7 +457,7 @@ module RBS
|
|
|
457
457
|
end
|
|
458
458
|
|
|
459
459
|
class ModuleAlias < AliasDecl
|
|
460
|
-
def to_json(state =
|
|
460
|
+
def to_json(state = nil)
|
|
461
461
|
{
|
|
462
462
|
declaration: :module_alias,
|
|
463
463
|
new_name: new_name,
|
data/lib/rbs/ast/members.rb
CHANGED
|
@@ -35,7 +35,7 @@ module RBS
|
|
|
35
35
|
update(method_type: self.method_type.sub(subst))
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
def to_json(state =
|
|
38
|
+
def to_json(state = nil)
|
|
39
39
|
{
|
|
40
40
|
annotations: annotations,
|
|
41
41
|
method_type: method_type
|
|
@@ -103,7 +103,7 @@ module RBS
|
|
|
103
103
|
)
|
|
104
104
|
end
|
|
105
105
|
|
|
106
|
-
def to_json(state =
|
|
106
|
+
def to_json(state = nil)
|
|
107
107
|
{
|
|
108
108
|
member: :method_definition,
|
|
109
109
|
name: name,
|
|
@@ -145,7 +145,7 @@ module RBS
|
|
|
145
145
|
class InstanceVariable < Base
|
|
146
146
|
include Var
|
|
147
147
|
|
|
148
|
-
def to_json(state =
|
|
148
|
+
def to_json(state = nil)
|
|
149
149
|
{
|
|
150
150
|
member: :instance_variable,
|
|
151
151
|
name: name,
|
|
@@ -159,7 +159,7 @@ module RBS
|
|
|
159
159
|
class ClassInstanceVariable < Base
|
|
160
160
|
include Var
|
|
161
161
|
|
|
162
|
-
def to_json(state =
|
|
162
|
+
def to_json(state = nil)
|
|
163
163
|
{
|
|
164
164
|
member: :class_instance_variable,
|
|
165
165
|
name: name,
|
|
@@ -173,7 +173,7 @@ module RBS
|
|
|
173
173
|
class ClassVariable < Base
|
|
174
174
|
include Var
|
|
175
175
|
|
|
176
|
-
def to_json(state =
|
|
176
|
+
def to_json(state = nil)
|
|
177
177
|
{
|
|
178
178
|
member: :class_variable,
|
|
179
179
|
name: name,
|
|
@@ -215,7 +215,7 @@ module RBS
|
|
|
215
215
|
class Include < Base
|
|
216
216
|
include Mixin
|
|
217
217
|
|
|
218
|
-
def to_json(state =
|
|
218
|
+
def to_json(state = nil)
|
|
219
219
|
{
|
|
220
220
|
member: :include,
|
|
221
221
|
name: name,
|
|
@@ -230,7 +230,7 @@ module RBS
|
|
|
230
230
|
class Extend < Base
|
|
231
231
|
include Mixin
|
|
232
232
|
|
|
233
|
-
def to_json(state =
|
|
233
|
+
def to_json(state = nil)
|
|
234
234
|
{
|
|
235
235
|
member: :extend,
|
|
236
236
|
name: name,
|
|
@@ -245,7 +245,7 @@ module RBS
|
|
|
245
245
|
class Prepend < Base
|
|
246
246
|
include Mixin
|
|
247
247
|
|
|
248
|
-
def to_json(state =
|
|
248
|
+
def to_json(state = nil)
|
|
249
249
|
{
|
|
250
250
|
member: :prepend,
|
|
251
251
|
name: name,
|
|
@@ -311,7 +311,7 @@ module RBS
|
|
|
311
311
|
class AttrReader < Base
|
|
312
312
|
include Attribute
|
|
313
313
|
|
|
314
|
-
def to_json(state =
|
|
314
|
+
def to_json(state = nil)
|
|
315
315
|
{
|
|
316
316
|
member: :attr_reader,
|
|
317
317
|
name: name,
|
|
@@ -329,7 +329,7 @@ module RBS
|
|
|
329
329
|
class AttrAccessor < Base
|
|
330
330
|
include Attribute
|
|
331
331
|
|
|
332
|
-
def to_json(state =
|
|
332
|
+
def to_json(state = nil)
|
|
333
333
|
{
|
|
334
334
|
member: :attr_accessor,
|
|
335
335
|
name: name,
|
|
@@ -347,7 +347,7 @@ module RBS
|
|
|
347
347
|
class AttrWriter < Base
|
|
348
348
|
include Attribute
|
|
349
349
|
|
|
350
|
-
def to_json(state =
|
|
350
|
+
def to_json(state = nil)
|
|
351
351
|
{
|
|
352
352
|
member: :attr_writer,
|
|
353
353
|
name: name,
|
|
@@ -383,7 +383,7 @@ module RBS
|
|
|
383
383
|
class Public < Base
|
|
384
384
|
include LocationOnly
|
|
385
385
|
|
|
386
|
-
def to_json(state =
|
|
386
|
+
def to_json(state = nil)
|
|
387
387
|
{ member: :public, location: location }.to_json(state)
|
|
388
388
|
end
|
|
389
389
|
end
|
|
@@ -391,7 +391,7 @@ module RBS
|
|
|
391
391
|
class Private < Base
|
|
392
392
|
include LocationOnly
|
|
393
393
|
|
|
394
|
-
def to_json(state =
|
|
394
|
+
def to_json(state = nil)
|
|
395
395
|
{ member: :private, location: location }.to_json(state)
|
|
396
396
|
end
|
|
397
397
|
end
|
|
@@ -426,7 +426,7 @@ module RBS
|
|
|
426
426
|
new_name.hash ^ old_name.hash ^ kind.hash
|
|
427
427
|
end
|
|
428
428
|
|
|
429
|
-
def to_json(state =
|
|
429
|
+
def to_json(state = nil)
|
|
430
430
|
{
|
|
431
431
|
member: :alias,
|
|
432
432
|
new_name: new_name,
|