rbs 3.9.5 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.clang-format +74 -0
- data/.clangd +2 -0
- data/.github/dependabot.yml +14 -14
- data/.github/workflows/bundle-update.yml +60 -0
- data/.github/workflows/c-check.yml +58 -0
- data/.github/workflows/comments.yml +5 -3
- data/.github/workflows/dependabot.yml +2 -2
- data/.github/workflows/ruby.yml +40 -32
- data/.github/workflows/rust.yml +95 -0
- data/.github/workflows/typecheck.yml +2 -2
- data/.github/workflows/windows.yml +3 -3
- data/.gitignore +4 -0
- data/.rubocop.yml +2 -2
- data/.vscode/extensions.json +5 -0
- data/.vscode/settings.json +19 -0
- data/CHANGELOG.md +284 -0
- data/README.md +38 -1
- data/Rakefile +144 -29
- data/Steepfile +2 -0
- data/config.yml +634 -62
- 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 +188 -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 +196 -148
- 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 +3303 -1365
- data/core/struct.rbs +27 -26
- data/core/symbol.rbs +41 -34
- data/core/thread.rbs +135 -74
- 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 +1513 -0
- data/ext/rbs_extension/ast_translation.h +37 -0
- data/ext/rbs_extension/class_constants.c +185 -0
- data/{include/rbs/constants.h → ext/rbs_extension/class_constants.h} +22 -1
- data/ext/rbs_extension/compat.h +10 -0
- data/ext/rbs_extension/extconf.rb +25 -1
- data/ext/rbs_extension/legacy_location.c +294 -0
- data/ext/rbs_extension/legacy_location.h +82 -0
- data/ext/rbs_extension/main.c +468 -24
- data/ext/rbs_extension/rbs_extension.h +6 -21
- data/ext/rbs_extension/rbs_string_bridging.c +9 -0
- data/ext/rbs_extension/rbs_string_bridging.h +24 -0
- data/include/rbs/ast.h +1022 -0
- data/include/rbs/defines.h +86 -0
- data/include/rbs/lexer.h +206 -0
- data/include/rbs/location.h +40 -0
- data/include/rbs/parser.h +153 -0
- data/include/rbs/string.h +47 -0
- data/include/rbs/util/rbs_allocator.h +59 -0
- data/include/rbs/util/rbs_assert.h +20 -0
- data/include/rbs/util/rbs_buffer.h +83 -0
- data/include/rbs/util/rbs_constant_pool.h +6 -70
- data/include/rbs/util/rbs_encoding.h +282 -0
- data/include/rbs/util/rbs_unescape.h +24 -0
- data/include/rbs.h +9 -2
- data/lib/rbs/annotate/formatter.rb +3 -13
- data/lib/rbs/annotate/rdoc_annotator.rb +3 -1
- data/lib/rbs/annotate/rdoc_source.rb +1 -1
- 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 +63 -126
- data/lib/rbs/cli.rb +56 -24
- data/lib/rbs/collection/config/lockfile_generator.rb +14 -2
- 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 +121 -65
- 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 +402 -214
- data/lib/rbs/environment_loader.rb +2 -8
- data/lib/rbs/errors.rb +31 -21
- 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 +35 -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 +10 -2
- data/lib/rbs/resolver/constant_resolver.rb +2 -2
- data/lib/rbs/resolver/type_name_resolver.rb +116 -38
- data/lib/rbs/source.rb +99 -0
- data/lib/rbs/subtractor.rb +7 -4
- data/lib/rbs/test/type_check.rb +19 -2
- data/lib/rbs/type_name.rb +1 -8
- data/lib/rbs/types.rb +91 -79
- 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 +13 -2
- data/lib/rdoc/discover.rb +1 -1
- data/lib/rdoc_plugin/parser.rb +3 -3
- data/rbs.gemspec +4 -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/annotate/formatter.rbs +2 -2
- data/sig/annotate/rdoc_annotater.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 +94 -87
- 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/manifest.yaml +0 -1
- data/sig/method_builder.rbs +9 -4
- data/sig/namespace.rbs +0 -5
- data/sig/parser.rbs +67 -13
- data/sig/prototype/helpers.rbs +2 -0
- data/sig/resolver/type_name_resolver.rbs +35 -7
- data/sig/source.rbs +48 -0
- data/sig/type_param.rbs +13 -8
- data/sig/typename.rbs +0 -5
- data/sig/types.rbs +10 -8
- data/sig/unit_test/spy.rbs +0 -8
- data/sig/unit_test/type_assertions.rbs +11 -0
- data/src/ast.c +1604 -0
- data/src/lexer.c +3194 -0
- data/src/lexer.re +154 -0
- data/src/lexstate.c +212 -0
- data/src/location.c +31 -0
- data/src/parser.c +4205 -0
- data/src/string.c +41 -0
- data/src/util/rbs_allocator.c +165 -0
- data/src/util/rbs_assert.c +19 -0
- data/src/util/rbs_buffer.c +54 -0
- data/src/util/rbs_constant_pool.c +18 -92
- data/src/util/rbs_encoding.c +21308 -0
- data/src/util/rbs_unescape.c +167 -0
- 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 +226 -179
- 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 +4 -3
- data/stdlib/rdoc/0/comment.rbs +2 -0
- data/stdlib/rdoc/0/options.rbs +76 -0
- data/stdlib/rdoc/0/parser.rbs +1 -1
- data/stdlib/rdoc/0/rdoc.rbs +7 -5
- data/stdlib/rdoc/0/store.rbs +2 -2
- data/stdlib/resolv/0/resolv.rbs +25 -68
- data/stdlib/ripper/0/ripper.rbs +25 -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 +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 +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 +121 -18
- data/ext/rbs_extension/lexer.c +0 -2728
- data/ext/rbs_extension/lexer.h +0 -179
- data/ext/rbs_extension/lexer.re +0 -147
- data/ext/rbs_extension/lexstate.c +0 -175
- data/ext/rbs_extension/location.c +0 -325
- data/ext/rbs_extension/location.h +0 -85
- data/ext/rbs_extension/parser.c +0 -2982
- data/ext/rbs_extension/parser.h +0 -18
- data/ext/rbs_extension/parserstate.c +0 -411
- data/ext/rbs_extension/parserstate.h +0 -163
- data/ext/rbs_extension/unescape.c +0 -32
- data/include/rbs/ruby_objs.h +0 -72
- data/src/constants.c +0 -153
- data/src/ruby_objs.c +0 -799
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
#ifndef RBS_CONSTANT_POOL_H
|
|
11
11
|
#define RBS_CONSTANT_POOL_H
|
|
12
12
|
|
|
13
|
+
#include "rbs/util/rbs_encoding.h"
|
|
14
|
+
|
|
13
15
|
#include <assert.h>
|
|
14
16
|
#include <stdbool.h>
|
|
15
17
|
#include <stdint.h>
|
|
@@ -28,70 +30,6 @@
|
|
|
28
30
|
*/
|
|
29
31
|
typedef uint32_t rbs_constant_id_t;
|
|
30
32
|
|
|
31
|
-
/**
|
|
32
|
-
* A list of constant IDs. Usually used to represent a set of locals.
|
|
33
|
-
*/
|
|
34
|
-
typedef struct {
|
|
35
|
-
/** The number of constant ids in the list. */
|
|
36
|
-
size_t size;
|
|
37
|
-
|
|
38
|
-
/** The number of constant ids that have been allocated in the list. */
|
|
39
|
-
size_t capacity;
|
|
40
|
-
|
|
41
|
-
/** The constant ids in the list. */
|
|
42
|
-
rbs_constant_id_t *ids;
|
|
43
|
-
} rbs_constant_id_list_t;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Initialize a list of constant ids.
|
|
47
|
-
*
|
|
48
|
-
* @param list The list to initialize.
|
|
49
|
-
*/
|
|
50
|
-
void rbs_constant_id_list_init(rbs_constant_id_list_t *list);
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Initialize a list of constant ids with a given capacity.
|
|
54
|
-
*
|
|
55
|
-
* @param list The list to initialize.
|
|
56
|
-
* @param capacity The initial capacity of the list.
|
|
57
|
-
*/
|
|
58
|
-
void rbs_constant_id_list_init_capacity(rbs_constant_id_list_t *list, size_t capacity);
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Append a constant id to a list of constant ids. Returns false if any
|
|
62
|
-
* potential reallocations fail.
|
|
63
|
-
*
|
|
64
|
-
* @param list The list to append to.
|
|
65
|
-
* @param id The id to append.
|
|
66
|
-
* @return Whether the append succeeded.
|
|
67
|
-
*/
|
|
68
|
-
bool rbs_constant_id_list_append(rbs_constant_id_list_t *list, rbs_constant_id_t id);
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Insert a constant id into a list of constant ids at the specified index.
|
|
72
|
-
*
|
|
73
|
-
* @param list The list to insert into.
|
|
74
|
-
* @param index The index at which to insert.
|
|
75
|
-
* @param id The id to insert.
|
|
76
|
-
*/
|
|
77
|
-
void rbs_constant_id_list_insert(rbs_constant_id_list_t *list, size_t index, rbs_constant_id_t id);
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Checks if the current constant id list includes the given constant id.
|
|
81
|
-
*
|
|
82
|
-
* @param list The list to check.
|
|
83
|
-
* @param id The id to check for.
|
|
84
|
-
* @return Whether the list includes the given id.
|
|
85
|
-
*/
|
|
86
|
-
bool rbs_constant_id_list_includes(rbs_constant_id_list_t *list, rbs_constant_id_t id);
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Free the memory associated with a list of constant ids.
|
|
90
|
-
*
|
|
91
|
-
* @param list The list to free.
|
|
92
|
-
*/
|
|
93
|
-
void rbs_constant_id_list_free(rbs_constant_id_list_t *list);
|
|
94
|
-
|
|
95
33
|
/**
|
|
96
34
|
* The type of bucket in the constant pool hash map. This determines how the
|
|
97
35
|
* bucket should be freed.
|
|
@@ -110,10 +48,10 @@ static const rbs_constant_pool_bucket_type_t RBS_CONSTANT_POOL_BUCKET_CONSTANT =
|
|
|
110
48
|
/** A bucket in the hash map. */
|
|
111
49
|
typedef struct {
|
|
112
50
|
/** The incremental ID used for indexing back into the pool. */
|
|
113
|
-
unsigned int id: 30;
|
|
51
|
+
unsigned int id : 30;
|
|
114
52
|
|
|
115
53
|
/** The type of the bucket, which determines how to free it. */
|
|
116
|
-
rbs_constant_pool_bucket_type_t type: 2;
|
|
54
|
+
rbs_constant_pool_bucket_type_t type : 2;
|
|
117
55
|
|
|
118
56
|
/** The hash of the bucket. */
|
|
119
57
|
uint32_t hash;
|
|
@@ -143,9 +81,6 @@ typedef struct {
|
|
|
143
81
|
uint32_t capacity;
|
|
144
82
|
} rbs_constant_pool_t;
|
|
145
83
|
|
|
146
|
-
// A global constant pool for storing permenant keywords, such as the names of location children in `parser.c`.
|
|
147
|
-
extern rbs_constant_pool_t *RBS_GLOBAL_CONSTANT_POOL;
|
|
148
|
-
|
|
149
84
|
/**
|
|
150
85
|
* Initialize a new constant pool with a given capacity.
|
|
151
86
|
*
|
|
@@ -162,7 +97,7 @@ bool rbs_constant_pool_init(rbs_constant_pool_t *pool, uint32_t capacity);
|
|
|
162
97
|
* @param constant_id The id of the constant to get.
|
|
163
98
|
* @return A pointer to the constant.
|
|
164
99
|
*/
|
|
165
|
-
rbs_constant_t *
|
|
100
|
+
rbs_constant_t *rbs_constant_pool_id_to_constant(const rbs_constant_pool_t *pool, rbs_constant_id_t constant_id);
|
|
166
101
|
|
|
167
102
|
/**
|
|
168
103
|
* Find a constant in a constant pool. Returns the id of the constant, or 0 if
|
|
@@ -185,6 +120,7 @@ rbs_constant_id_t rbs_constant_pool_find(const rbs_constant_pool_t *pool, const
|
|
|
185
120
|
* @return The id of the constant.
|
|
186
121
|
*/
|
|
187
122
|
rbs_constant_id_t rbs_constant_pool_insert_shared(rbs_constant_pool_t *pool, const uint8_t *start, size_t length);
|
|
123
|
+
rbs_constant_id_t rbs_constant_pool_insert_shared_with_encoding(rbs_constant_pool_t *pool, const uint8_t *start, size_t length, const rbs_encoding_t *encoding);
|
|
188
124
|
|
|
189
125
|
/**
|
|
190
126
|
* Insert a constant into a constant pool from memory that is now owned by the
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file encoding.h
|
|
3
|
+
*
|
|
4
|
+
* The encoding interface and implementations used by the parser.
|
|
5
|
+
*/
|
|
6
|
+
#ifndef RBS_RBS_ENCODING_H
|
|
7
|
+
#define RBS_RBS_ENCODING_H
|
|
8
|
+
|
|
9
|
+
#include "rbs/defines.h"
|
|
10
|
+
|
|
11
|
+
#include <assert.h>
|
|
12
|
+
#include <stdbool.h>
|
|
13
|
+
#include <stddef.h>
|
|
14
|
+
#include <stdint.h>
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* This struct defines the functions necessary to implement the encoding
|
|
18
|
+
* interface so we can determine how many bytes the subsequent character takes.
|
|
19
|
+
* Each callback should return the number of bytes, or 0 if the next bytes are
|
|
20
|
+
* invalid for the encoding and type.
|
|
21
|
+
*/
|
|
22
|
+
typedef struct {
|
|
23
|
+
/**
|
|
24
|
+
* Return the number of bytes that the next character takes if it is valid
|
|
25
|
+
* in the encoding. Does not read more than n bytes. It is assumed that n is
|
|
26
|
+
* at least 1.
|
|
27
|
+
*/
|
|
28
|
+
size_t (*char_width)(const uint8_t *b, ptrdiff_t n);
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Return the number of bytes that the next character takes if it is valid
|
|
32
|
+
* in the encoding and is alphabetical. Does not read more than n bytes. It
|
|
33
|
+
* is assumed that n is at least 1.
|
|
34
|
+
*/
|
|
35
|
+
size_t (*alpha_char)(const uint8_t *b, ptrdiff_t n);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Return the number of bytes that the next character takes if it is valid
|
|
39
|
+
* in the encoding and is alphanumeric. Does not read more than n bytes. It
|
|
40
|
+
* is assumed that n is at least 1.
|
|
41
|
+
*/
|
|
42
|
+
size_t (*alnum_char)(const uint8_t *b, ptrdiff_t n);
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Return true if the next character is valid in the encoding and is an
|
|
46
|
+
* uppercase character. Does not read more than n bytes. It is assumed that
|
|
47
|
+
* n is at least 1.
|
|
48
|
+
*/
|
|
49
|
+
bool (*isupper_char)(const uint8_t *b, ptrdiff_t n);
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* The name of the encoding. This should correspond to a value that can be
|
|
53
|
+
* passed to Encoding.find in Ruby.
|
|
54
|
+
*/
|
|
55
|
+
const char *name;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Return true if the encoding is a multibyte encoding.
|
|
59
|
+
*/
|
|
60
|
+
bool multibyte;
|
|
61
|
+
} rbs_encoding_t;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* All of the lookup tables use the first bit of each embedded byte to indicate
|
|
65
|
+
* whether the codepoint is alphabetical.
|
|
66
|
+
*/
|
|
67
|
+
#define RBS_ENCODING_ALPHABETIC_BIT 1 << 0
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* All of the lookup tables use the second bit of each embedded byte to indicate
|
|
71
|
+
* whether the codepoint is alphanumeric.
|
|
72
|
+
*/
|
|
73
|
+
#define RBS_ENCODING_ALPHANUMERIC_BIT 1 << 1
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* All of the lookup tables use the third bit of each embedded byte to indicate
|
|
77
|
+
* whether the codepoint is uppercase.
|
|
78
|
+
*/
|
|
79
|
+
#define RBS_ENCODING_UPPERCASE_BIT 1 << 2
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Return the size of the next character in the UTF-8 encoding.
|
|
83
|
+
*
|
|
84
|
+
* @param b The bytes to read.
|
|
85
|
+
* @param n The number of bytes that can be read.
|
|
86
|
+
* @returns The number of bytes that the next character takes if it is valid in
|
|
87
|
+
* the encoding, or 0 if it is not.
|
|
88
|
+
*/
|
|
89
|
+
size_t rbs_encoding_utf_8_char_width(const uint8_t *b, ptrdiff_t n);
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Return the size of the next character in the UTF-8 encoding if it is an
|
|
93
|
+
* alphabetical character.
|
|
94
|
+
*
|
|
95
|
+
* @param b The bytes to read.
|
|
96
|
+
* @param n The number of bytes that can be read.
|
|
97
|
+
* @returns The number of bytes that the next character takes if it is valid in
|
|
98
|
+
* the encoding, or 0 if it is not.
|
|
99
|
+
*/
|
|
100
|
+
size_t rbs_encoding_utf_8_alpha_char(const uint8_t *b, ptrdiff_t n);
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Return the size of the next character in the UTF-8 encoding if it is an
|
|
104
|
+
* alphanumeric character.
|
|
105
|
+
*
|
|
106
|
+
* @param b The bytes to read.
|
|
107
|
+
* @param n The number of bytes that can be read.
|
|
108
|
+
* @returns The number of bytes that the next character takes if it is valid in
|
|
109
|
+
* the encoding, or 0 if it is not.
|
|
110
|
+
*/
|
|
111
|
+
size_t rbs_encoding_utf_8_alnum_char(const uint8_t *b, ptrdiff_t n);
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Return true if the next character in the UTF-8 encoding if it is an uppercase
|
|
115
|
+
* character.
|
|
116
|
+
*
|
|
117
|
+
* @param b The bytes to read.
|
|
118
|
+
* @param n The number of bytes that can be read.
|
|
119
|
+
* @returns True if the next character is valid in the encoding and is an
|
|
120
|
+
* uppercase character, or false if it is not.
|
|
121
|
+
*/
|
|
122
|
+
bool rbs_encoding_utf_8_isupper_char(const uint8_t *b, ptrdiff_t n);
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* This lookup table is referenced in both the UTF-8 encoding file and the
|
|
126
|
+
* parser directly in order to speed up the default encoding processing. It is
|
|
127
|
+
* used to indicate whether a character is alphabetical, alphanumeric, or
|
|
128
|
+
* uppercase in unicode mappings.
|
|
129
|
+
*/
|
|
130
|
+
extern const uint8_t rbs_encoding_unicode_table[256];
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* These are all of the encodings that prism supports.
|
|
134
|
+
*/
|
|
135
|
+
typedef enum {
|
|
136
|
+
RBS_ENCODING_UTF_8 = 0,
|
|
137
|
+
RBS_ENCODING_US_ASCII,
|
|
138
|
+
RBS_ENCODING_ASCII_8BIT,
|
|
139
|
+
RBS_ENCODING_EUC_JP,
|
|
140
|
+
RBS_ENCODING_WINDOWS_31J,
|
|
141
|
+
|
|
142
|
+
// We optionally support excluding the full set of encodings to only support the
|
|
143
|
+
// minimum necessary to process Ruby code without encoding comments.
|
|
144
|
+
#ifndef RBS_ENCODING_EXCLUDE_FULL
|
|
145
|
+
RBS_ENCODING_BIG5,
|
|
146
|
+
RBS_ENCODING_BIG5_HKSCS,
|
|
147
|
+
RBS_ENCODING_BIG5_UAO,
|
|
148
|
+
RBS_ENCODING_CESU_8,
|
|
149
|
+
RBS_ENCODING_CP51932,
|
|
150
|
+
RBS_ENCODING_CP850,
|
|
151
|
+
RBS_ENCODING_CP852,
|
|
152
|
+
RBS_ENCODING_CP855,
|
|
153
|
+
RBS_ENCODING_CP949,
|
|
154
|
+
RBS_ENCODING_CP950,
|
|
155
|
+
RBS_ENCODING_CP951,
|
|
156
|
+
RBS_ENCODING_EMACS_MULE,
|
|
157
|
+
RBS_ENCODING_EUC_JP_MS,
|
|
158
|
+
RBS_ENCODING_EUC_JIS_2004,
|
|
159
|
+
RBS_ENCODING_EUC_KR,
|
|
160
|
+
RBS_ENCODING_EUC_TW,
|
|
161
|
+
RBS_ENCODING_GB12345,
|
|
162
|
+
RBS_ENCODING_GB18030,
|
|
163
|
+
RBS_ENCODING_GB1988,
|
|
164
|
+
RBS_ENCODING_GB2312,
|
|
165
|
+
RBS_ENCODING_GBK,
|
|
166
|
+
RBS_ENCODING_IBM437,
|
|
167
|
+
RBS_ENCODING_IBM720,
|
|
168
|
+
RBS_ENCODING_IBM737,
|
|
169
|
+
RBS_ENCODING_IBM775,
|
|
170
|
+
RBS_ENCODING_IBM852,
|
|
171
|
+
RBS_ENCODING_IBM855,
|
|
172
|
+
RBS_ENCODING_IBM857,
|
|
173
|
+
RBS_ENCODING_IBM860,
|
|
174
|
+
RBS_ENCODING_IBM861,
|
|
175
|
+
RBS_ENCODING_IBM862,
|
|
176
|
+
RBS_ENCODING_IBM863,
|
|
177
|
+
RBS_ENCODING_IBM864,
|
|
178
|
+
RBS_ENCODING_IBM865,
|
|
179
|
+
RBS_ENCODING_IBM866,
|
|
180
|
+
RBS_ENCODING_IBM869,
|
|
181
|
+
RBS_ENCODING_ISO_8859_1,
|
|
182
|
+
RBS_ENCODING_ISO_8859_2,
|
|
183
|
+
RBS_ENCODING_ISO_8859_3,
|
|
184
|
+
RBS_ENCODING_ISO_8859_4,
|
|
185
|
+
RBS_ENCODING_ISO_8859_5,
|
|
186
|
+
RBS_ENCODING_ISO_8859_6,
|
|
187
|
+
RBS_ENCODING_ISO_8859_7,
|
|
188
|
+
RBS_ENCODING_ISO_8859_8,
|
|
189
|
+
RBS_ENCODING_ISO_8859_9,
|
|
190
|
+
RBS_ENCODING_ISO_8859_10,
|
|
191
|
+
RBS_ENCODING_ISO_8859_11,
|
|
192
|
+
RBS_ENCODING_ISO_8859_13,
|
|
193
|
+
RBS_ENCODING_ISO_8859_14,
|
|
194
|
+
RBS_ENCODING_ISO_8859_15,
|
|
195
|
+
RBS_ENCODING_ISO_8859_16,
|
|
196
|
+
RBS_ENCODING_KOI8_R,
|
|
197
|
+
RBS_ENCODING_KOI8_U,
|
|
198
|
+
RBS_ENCODING_MAC_CENT_EURO,
|
|
199
|
+
RBS_ENCODING_MAC_CROATIAN,
|
|
200
|
+
RBS_ENCODING_MAC_CYRILLIC,
|
|
201
|
+
RBS_ENCODING_MAC_GREEK,
|
|
202
|
+
RBS_ENCODING_MAC_ICELAND,
|
|
203
|
+
RBS_ENCODING_MAC_JAPANESE,
|
|
204
|
+
RBS_ENCODING_MAC_ROMAN,
|
|
205
|
+
RBS_ENCODING_MAC_ROMANIA,
|
|
206
|
+
RBS_ENCODING_MAC_THAI,
|
|
207
|
+
RBS_ENCODING_MAC_TURKISH,
|
|
208
|
+
RBS_ENCODING_MAC_UKRAINE,
|
|
209
|
+
RBS_ENCODING_SHIFT_JIS,
|
|
210
|
+
RBS_ENCODING_SJIS_DOCOMO,
|
|
211
|
+
RBS_ENCODING_SJIS_KDDI,
|
|
212
|
+
RBS_ENCODING_SJIS_SOFTBANK,
|
|
213
|
+
RBS_ENCODING_STATELESS_ISO_2022_JP,
|
|
214
|
+
RBS_ENCODING_STATELESS_ISO_2022_JP_KDDI,
|
|
215
|
+
RBS_ENCODING_TIS_620,
|
|
216
|
+
RBS_ENCODING_UTF8_MAC,
|
|
217
|
+
RBS_ENCODING_UTF8_DOCOMO,
|
|
218
|
+
RBS_ENCODING_UTF8_KDDI,
|
|
219
|
+
RBS_ENCODING_UTF8_SOFTBANK,
|
|
220
|
+
RBS_ENCODING_WINDOWS_1250,
|
|
221
|
+
RBS_ENCODING_WINDOWS_1251,
|
|
222
|
+
RBS_ENCODING_WINDOWS_1252,
|
|
223
|
+
RBS_ENCODING_WINDOWS_1253,
|
|
224
|
+
RBS_ENCODING_WINDOWS_1254,
|
|
225
|
+
RBS_ENCODING_WINDOWS_1255,
|
|
226
|
+
RBS_ENCODING_WINDOWS_1256,
|
|
227
|
+
RBS_ENCODING_WINDOWS_1257,
|
|
228
|
+
RBS_ENCODING_WINDOWS_1258,
|
|
229
|
+
RBS_ENCODING_WINDOWS_874,
|
|
230
|
+
#endif
|
|
231
|
+
|
|
232
|
+
RBS_ENCODING_MAXIMUM
|
|
233
|
+
} rbs_encoding_type_t;
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* This is the table of all of the encodings that prism supports.
|
|
237
|
+
*/
|
|
238
|
+
extern const rbs_encoding_t rbs_encodings[RBS_ENCODING_MAXIMUM];
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* This is the default UTF-8 encoding. We need a reference to it to quickly
|
|
242
|
+
* create parsers.
|
|
243
|
+
*/
|
|
244
|
+
#define RBS_ENCODING_UTF_8_ENTRY (&rbs_encodings[RBS_ENCODING_UTF_8])
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* This is the US-ASCII encoding. We need a reference to it to be able to
|
|
248
|
+
* compare against it when a string is being created because it could possibly
|
|
249
|
+
* need to fall back to ASCII-8BIT.
|
|
250
|
+
*/
|
|
251
|
+
#define RBS_ENCODING_US_ASCII_ENTRY (&rbs_encodings[RBS_ENCODING_US_ASCII])
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* This is the ASCII-8BIT encoding. We need a reference to it so that rbs_strpbrk
|
|
255
|
+
* can compare against it because invalid multibyte characters are not a thing
|
|
256
|
+
* in this encoding. It is also needed for handling Regexp encoding flags.
|
|
257
|
+
*/
|
|
258
|
+
#define RBS_ENCODING_ASCII_8BIT_ENTRY (&rbs_encodings[RBS_ENCODING_ASCII_8BIT])
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* This is the EUC-JP encoding. We need a reference to it to quickly process
|
|
262
|
+
* regular expression modifiers.
|
|
263
|
+
*/
|
|
264
|
+
#define RBS_ENCODING_EUC_JP_ENTRY (&rbs_encodings[RBS_ENCODING_EUC_JP])
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* This is the Windows-31J encoding. We need a reference to it to quickly
|
|
268
|
+
* process regular expression modifiers.
|
|
269
|
+
*/
|
|
270
|
+
#define RBS_ENCODING_WINDOWS_31J_ENTRY (&rbs_encodings[RBS_ENCODING_WINDOWS_31J])
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* Parse the given name of an encoding and return a pointer to the corresponding
|
|
274
|
+
* encoding struct if one can be found, otherwise return NULL.
|
|
275
|
+
*
|
|
276
|
+
* @param start A pointer to the first byte of the name.
|
|
277
|
+
* @param end A pointer to the last byte of the name.
|
|
278
|
+
* @returns A pointer to the encoding struct if one is found, otherwise NULL.
|
|
279
|
+
*/
|
|
280
|
+
const rbs_encoding_t *rbs_encoding_find(const uint8_t *start, const uint8_t *end);
|
|
281
|
+
|
|
282
|
+
#endif
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#ifndef RBS_RBS_UNESCAPE_H
|
|
2
|
+
#define RBS_RBS_UNESCAPE_H
|
|
3
|
+
|
|
4
|
+
#include <stddef.h>
|
|
5
|
+
#include "rbs/util/rbs_allocator.h"
|
|
6
|
+
#include "rbs/string.h"
|
|
7
|
+
#include "rbs/util/rbs_encoding.h"
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Receives `rbs_parser_t` and `range`, which represents a string token or symbol token, and returns a string VALUE.
|
|
11
|
+
*
|
|
12
|
+
* Input token | Output string
|
|
13
|
+
* ------------+-------------
|
|
14
|
+
* "foo\\n" | foo\n
|
|
15
|
+
* 'foo' | foo
|
|
16
|
+
* `bar` | bar
|
|
17
|
+
* :"baz\\t" | baz\t
|
|
18
|
+
* :'baz' | baz
|
|
19
|
+
*
|
|
20
|
+
* @returns A new owned string that will be freed when the allocator is freed.
|
|
21
|
+
* */
|
|
22
|
+
rbs_string_t rbs_unquote_string(rbs_allocator_t *, const rbs_string_t input, const rbs_encoding_t *encoding);
|
|
23
|
+
|
|
24
|
+
#endif // RBS_RBS_UNESCAPE_H
|
data/include/rbs.h
CHANGED
|
@@ -59,20 +59,10 @@ module RBS
|
|
|
59
59
|
|
|
60
60
|
def self.each_part(doc, &block)
|
|
61
61
|
if block
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
when String
|
|
65
|
-
raise
|
|
66
|
-
when RDoc::Comment
|
|
67
|
-
document = doc.parse
|
|
68
|
-
when RDoc::Markup::Document
|
|
69
|
-
document = doc
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
if document.file
|
|
73
|
-
yield document
|
|
62
|
+
if doc.file
|
|
63
|
+
yield doc
|
|
74
64
|
else
|
|
75
|
-
|
|
65
|
+
doc.each do |d|
|
|
76
66
|
each_part(d, &block)
|
|
77
67
|
end
|
|
78
68
|
end
|
|
@@ -39,7 +39,9 @@ module RBS
|
|
|
39
39
|
def each_part(subjects, tester:)
|
|
40
40
|
if block_given?
|
|
41
41
|
subjects.each do |subject, docs|
|
|
42
|
-
|
|
42
|
+
comment = subject.comment
|
|
43
|
+
raise if comment.is_a?(String)
|
|
44
|
+
Formatter.each_part(comment.parse) do |doc|
|
|
43
45
|
if tester.test_path(doc.file || raise)
|
|
44
46
|
yield [doc, subject]
|
|
45
47
|
end
|
|
@@ -23,7 +23,7 @@ module RBS
|
|
|
23
23
|
@stores.clear()
|
|
24
24
|
|
|
25
25
|
RDoc::RI::Paths.each(with_system_dir, with_site_dir, with_home_dir, with_gems_dir ? :latest : false, *extra_dirs.map(&:to_s)) do |path, type|
|
|
26
|
-
store = RDoc::Store.new(
|
|
26
|
+
store = RDoc::Store.new(RDoc::Options.new, path:, type:)
|
|
27
27
|
store.load_all
|
|
28
28
|
|
|
29
29
|
@stores << store
|
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,
|