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
|
@@ -6,8 +6,16 @@ module RBS
|
|
|
6
6
|
| MethodTypesAnnotation
|
|
7
7
|
| SkipAnnotation
|
|
8
8
|
| ReturnTypeAnnotation
|
|
9
|
+
| InstanceVariableAnnotation
|
|
10
|
+
| ParamTypeAnnotation
|
|
11
|
+
| SplatParamTypeAnnotation
|
|
12
|
+
| DoubleSplatParamTypeAnnotation
|
|
13
|
+
| BlockParamTypeAnnotation
|
|
9
14
|
|
|
10
15
|
type trailing_annotation = NodeTypeAssertion
|
|
16
|
+
| TypeApplicationAnnotation
|
|
17
|
+
| ClassAliasAnnotation
|
|
18
|
+
| ModuleAliasAnnotation
|
|
11
19
|
|
|
12
20
|
type t = leading_annotation | trailing_annotation
|
|
13
21
|
|
|
@@ -23,6 +31,9 @@ module RBS
|
|
|
23
31
|
def initialize: (Location location, Location prefix_location) -> void
|
|
24
32
|
|
|
25
33
|
def buffer: () -> Buffer
|
|
34
|
+
|
|
35
|
+
# Returns the type fingerprint for this annotation
|
|
36
|
+
def type_fingerprint: () -> untyped
|
|
26
37
|
end
|
|
27
38
|
|
|
28
39
|
# `: TYPE` annotation attached to nodes
|
|
@@ -33,6 +44,51 @@ module RBS
|
|
|
33
44
|
def initialize: (location: Location, prefix_location: Location, type: Types::t) -> void
|
|
34
45
|
|
|
35
46
|
def map_type_name: () { (TypeName) -> TypeName } -> self
|
|
47
|
+
|
|
48
|
+
def type_fingerprint: () -> untyped
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
class AliasAnnotation < Base
|
|
52
|
+
attr_reader keyword_location: Location
|
|
53
|
+
|
|
54
|
+
attr_reader type_name_location: Location?
|
|
55
|
+
|
|
56
|
+
# The name of the module that will be the target of the alias
|
|
57
|
+
#
|
|
58
|
+
# - `nil` if the module/class name is unspecified
|
|
59
|
+
# - `TypeName` object if the module/class name is specified
|
|
60
|
+
#
|
|
61
|
+
attr_reader type_name: TypeName?
|
|
62
|
+
|
|
63
|
+
def initialize: (location: Location, prefix_location: Location, keyword_location: Location, type_name: TypeName?, type_name_location: Location?) -> void
|
|
64
|
+
|
|
65
|
+
def map_type_name: () { (TypeName) -> TypeName } -> self
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# `: class-alias` annotation
|
|
69
|
+
#
|
|
70
|
+
# ```
|
|
71
|
+
# : class-alias Foo::Bar
|
|
72
|
+
# ^ -- prefix_location
|
|
73
|
+
# ^^^^^^^^^^^^ -- keyword_location
|
|
74
|
+
# ^^^^^^^^ -- type_name_location
|
|
75
|
+
# ```
|
|
76
|
+
#
|
|
77
|
+
class ClassAliasAnnotation < AliasAnnotation
|
|
78
|
+
def type_fingerprint: () -> untyped
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# `: module-alias` annotation
|
|
82
|
+
#
|
|
83
|
+
# ```
|
|
84
|
+
# : module-alias Foo::Bar
|
|
85
|
+
# ^ -- prefix_location
|
|
86
|
+
# ^^^^^^^^^^^^ -- keyword_location
|
|
87
|
+
# ^^^^^^^^ -- type_name_location
|
|
88
|
+
# ```
|
|
89
|
+
#
|
|
90
|
+
class ModuleAliasAnnotation < AliasAnnotation
|
|
91
|
+
def type_fingerprint: () -> untyped
|
|
36
92
|
end
|
|
37
93
|
|
|
38
94
|
# `: METHOD-TYPE` annotation in leading comments
|
|
@@ -45,14 +101,18 @@ module RBS
|
|
|
45
101
|
def initialize: (location: Location, prefix_location: Location, annotations: Array[AST::Annotation], method_type: MethodType) -> void
|
|
46
102
|
|
|
47
103
|
def map_type_name: () { (TypeName) -> TypeName } -> self
|
|
104
|
+
|
|
105
|
+
def type_fingerprint: () -> untyped
|
|
48
106
|
end
|
|
49
107
|
|
|
50
108
|
# `@rbs METHOD-TYPEs` annotation in leading comments
|
|
51
109
|
#
|
|
52
110
|
# ```
|
|
53
|
-
# @rbs () -> void | %a{foo} () -> String
|
|
54
|
-
# ^^^^
|
|
55
|
-
# ^
|
|
111
|
+
# @rbs () -> void | %a{foo} () -> String | ...
|
|
112
|
+
# ^^^^ -- prefix_location
|
|
113
|
+
# ^ -- vertical_bar_locations[0]
|
|
114
|
+
# ^ -- vertical_bar_locations[1]
|
|
115
|
+
# ^^^ -- dot3_location
|
|
56
116
|
# ```
|
|
57
117
|
class MethodTypesAnnotation < Base
|
|
58
118
|
class Overload = AST::Members::MethodDefinition::Overload
|
|
@@ -61,9 +121,13 @@ module RBS
|
|
|
61
121
|
|
|
62
122
|
attr_reader vertical_bar_locations: Array[Location]
|
|
63
123
|
|
|
64
|
-
|
|
124
|
+
attr_reader dot3_location: Location?
|
|
125
|
+
|
|
126
|
+
def initialize: (location: Location, prefix_location: Location, overloads: Array[Overload], vertical_bar_locations: Array[Location], dot3_location: Location?) -> void
|
|
65
127
|
|
|
66
128
|
def map_type_name: () { (TypeName) -> TypeName } -> self
|
|
129
|
+
|
|
130
|
+
def type_fingerprint: () -> untyped
|
|
67
131
|
end
|
|
68
132
|
|
|
69
133
|
# `@rbs skip -- comment` annotation in leading comments
|
|
@@ -73,6 +137,8 @@ module RBS
|
|
|
73
137
|
attr_reader comment_location: Location?
|
|
74
138
|
|
|
75
139
|
def initialize: (location: Location, prefix_location: Location, skip_location: Location, comment_location: Location?) -> void
|
|
140
|
+
|
|
141
|
+
def type_fingerprint: () -> untyped
|
|
76
142
|
end
|
|
77
143
|
|
|
78
144
|
# `@rbs return: T -- comment` annotation in leading comments
|
|
@@ -103,6 +169,251 @@ module RBS
|
|
|
103
169
|
) -> void
|
|
104
170
|
|
|
105
171
|
def map_type_name: () { (TypeName) -> TypeName } -> self
|
|
172
|
+
|
|
173
|
+
def type_fingerprint: () -> untyped
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# `[T1, T2, ...]` annotation in trailing comments
|
|
177
|
+
#
|
|
178
|
+
# ```
|
|
179
|
+
# #[String, Integer]
|
|
180
|
+
# ^ -- prefix_location
|
|
181
|
+
# ^ -- comma_locations[0]
|
|
182
|
+
# ^ -- close_bracket_location
|
|
183
|
+
# ```
|
|
184
|
+
#
|
|
185
|
+
class TypeApplicationAnnotation < Base
|
|
186
|
+
attr_reader type_args: Array[Types::t]
|
|
187
|
+
|
|
188
|
+
attr_reader close_bracket_location: Location
|
|
189
|
+
|
|
190
|
+
attr_reader comma_locations: Array[Location]
|
|
191
|
+
|
|
192
|
+
def initialize: (
|
|
193
|
+
location: Location,
|
|
194
|
+
prefix_location: Location,
|
|
195
|
+
type_args: Array[Types::t],
|
|
196
|
+
close_bracket_location: Location,
|
|
197
|
+
comma_locations: Array[Location],
|
|
198
|
+
) -> void
|
|
199
|
+
|
|
200
|
+
def map_type_name: () { (TypeName) -> TypeName } -> self
|
|
201
|
+
|
|
202
|
+
def type_fingerprint: () -> untyped
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
# `@rbs IVAR-NAME : TYPE` annotation in leading comments
|
|
206
|
+
#
|
|
207
|
+
# ```
|
|
208
|
+
# @rbs @foo : String -- comment
|
|
209
|
+
# ^^^^ -- prefix_location
|
|
210
|
+
# ^^^^ -- ivar_name_location
|
|
211
|
+
# ^ -- colon_location
|
|
212
|
+
# ^^^^^^^^^^ -- comment_location
|
|
213
|
+
# ```
|
|
214
|
+
class InstanceVariableAnnotation < Base
|
|
215
|
+
attr_reader ivar_name: Symbol
|
|
216
|
+
|
|
217
|
+
attr_reader ivar_name_location: Location
|
|
218
|
+
|
|
219
|
+
attr_reader colon_location: Location
|
|
220
|
+
|
|
221
|
+
attr_reader type: Types::t
|
|
222
|
+
|
|
223
|
+
attr_reader comment_location: Location?
|
|
224
|
+
|
|
225
|
+
def initialize: (
|
|
226
|
+
location: Location,
|
|
227
|
+
prefix_location: Location,
|
|
228
|
+
ivar_name: Symbol,
|
|
229
|
+
ivar_name_location: Location,
|
|
230
|
+
colon_location: Location,
|
|
231
|
+
type: Types::t,
|
|
232
|
+
comment_location: Location?,
|
|
233
|
+
) -> void
|
|
234
|
+
|
|
235
|
+
def map_type_name: () { (TypeName) -> TypeName } -> self
|
|
236
|
+
|
|
237
|
+
def type_fingerprint: () -> untyped
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
class ParamTypeAnnotation < Base
|
|
241
|
+
attr_reader name_location: Location
|
|
242
|
+
|
|
243
|
+
attr_reader colon_location: Location
|
|
244
|
+
|
|
245
|
+
attr_reader param_type: Types::t
|
|
246
|
+
|
|
247
|
+
attr_reader comment_location: Location?
|
|
248
|
+
|
|
249
|
+
def initialize: (
|
|
250
|
+
location: Location,
|
|
251
|
+
prefix_location: Location,
|
|
252
|
+
name_location: Location,
|
|
253
|
+
colon_location: Location,
|
|
254
|
+
param_type: Types::t,
|
|
255
|
+
comment_location: Location?,
|
|
256
|
+
) -> void
|
|
257
|
+
|
|
258
|
+
def map_type_name: () { (TypeName) -> TypeName } -> self
|
|
259
|
+
|
|
260
|
+
def type_fingerprint: () -> untyped
|
|
261
|
+
|
|
262
|
+
%a{pure}
|
|
263
|
+
def name: () -> Symbol
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
# `@rbs *name: Type -- comment` annotation in leading comments
|
|
267
|
+
#
|
|
268
|
+
# ```
|
|
269
|
+
# @rbs *a: String -- comment
|
|
270
|
+
# ^^^^ -- prefix_location
|
|
271
|
+
# ^ -- star_location
|
|
272
|
+
# ^ -- name_location
|
|
273
|
+
# ^ -- colon_location
|
|
274
|
+
# ^^^^^^^^^^ -- comment_location
|
|
275
|
+
# ```
|
|
276
|
+
#
|
|
277
|
+
# ```
|
|
278
|
+
# @rbs *: String
|
|
279
|
+
# ^^^^ -- prefix_location
|
|
280
|
+
# ^ -- star_location
|
|
281
|
+
# ^ -- colon_location
|
|
282
|
+
# ```
|
|
283
|
+
#
|
|
284
|
+
class SplatParamTypeAnnotation < Base
|
|
285
|
+
attr_reader star_location: Location
|
|
286
|
+
|
|
287
|
+
attr_reader name_location: Location?
|
|
288
|
+
|
|
289
|
+
attr_reader colon_location: Location
|
|
290
|
+
|
|
291
|
+
attr_reader param_type: Types::t
|
|
292
|
+
|
|
293
|
+
attr_reader comment_location: Location?
|
|
294
|
+
|
|
295
|
+
def initialize: (
|
|
296
|
+
location: Location,
|
|
297
|
+
prefix_location: Location,
|
|
298
|
+
star_location: Location,
|
|
299
|
+
name_location: Location?,
|
|
300
|
+
colon_location: Location,
|
|
301
|
+
param_type: Types::t,
|
|
302
|
+
comment_location: Location?,
|
|
303
|
+
) -> void
|
|
304
|
+
|
|
305
|
+
def map_type_name: () { (TypeName) -> TypeName } -> self
|
|
306
|
+
|
|
307
|
+
def type_fingerprint: () -> untyped
|
|
308
|
+
|
|
309
|
+
%a{pure}
|
|
310
|
+
def name: () -> Symbol?
|
|
311
|
+
end
|
|
312
|
+
|
|
313
|
+
# `@rbs **name: Type -- comment` annotation in leading comments
|
|
314
|
+
#
|
|
315
|
+
# ```
|
|
316
|
+
# @rbs **b: bool -- comment
|
|
317
|
+
# ^^^^ -- prefix_location
|
|
318
|
+
# ^^ -- star2_location
|
|
319
|
+
# ^ -- name_location
|
|
320
|
+
# ^ -- colon_location
|
|
321
|
+
# ^^^^^^^^^^ -- comment_location
|
|
322
|
+
# ```
|
|
323
|
+
#
|
|
324
|
+
# ```
|
|
325
|
+
# @rbs **: bool
|
|
326
|
+
# ^^^^ -- prefix_location
|
|
327
|
+
# ^^ -- star2_location
|
|
328
|
+
# ^ -- colon_location
|
|
329
|
+
# ```
|
|
330
|
+
#
|
|
331
|
+
class DoubleSplatParamTypeAnnotation < Base
|
|
332
|
+
attr_reader star2_location: Location
|
|
333
|
+
|
|
334
|
+
attr_reader name_location: Location?
|
|
335
|
+
|
|
336
|
+
attr_reader colon_location: Location
|
|
337
|
+
|
|
338
|
+
attr_reader param_type: Types::t
|
|
339
|
+
|
|
340
|
+
attr_reader comment_location: Location?
|
|
341
|
+
|
|
342
|
+
def initialize: (
|
|
343
|
+
location: Location,
|
|
344
|
+
prefix_location: Location,
|
|
345
|
+
star2_location: Location,
|
|
346
|
+
name_location: Location?,
|
|
347
|
+
colon_location: Location,
|
|
348
|
+
param_type: Types::t,
|
|
349
|
+
comment_location: Location?,
|
|
350
|
+
) -> void
|
|
351
|
+
|
|
352
|
+
def map_type_name: () { (TypeName) -> TypeName } -> self
|
|
353
|
+
|
|
354
|
+
def type_fingerprint: () -> untyped
|
|
355
|
+
|
|
356
|
+
%a{pure}
|
|
357
|
+
def name: () -> Symbol?
|
|
358
|
+
end
|
|
359
|
+
|
|
360
|
+
# `@rbs &name: TYPE -- comment` annotation in leading comments
|
|
361
|
+
#
|
|
362
|
+
# ```
|
|
363
|
+
# @rbs &block: () -> void -- comment
|
|
364
|
+
# ^^^^ -- prefix_location
|
|
365
|
+
# ^ -- ampersand_location
|
|
366
|
+
# ^^^^^ -- name_location
|
|
367
|
+
# ^ -- colon_location
|
|
368
|
+
# ^^^^^^^^^^ -- type_location
|
|
369
|
+
# ^^^^^^^^^^ -- comment_location
|
|
370
|
+
# ```
|
|
371
|
+
#
|
|
372
|
+
# ```
|
|
373
|
+
# @rbs &: ? () -> void
|
|
374
|
+
# ^^^^ -- prefix_location
|
|
375
|
+
# ^ -- ampersand_location
|
|
376
|
+
# ^ -- colon_location
|
|
377
|
+
# ^ -- question_location
|
|
378
|
+
# ^^^^^^^^^^ -- type_location
|
|
379
|
+
# ```
|
|
380
|
+
#
|
|
381
|
+
class BlockParamTypeAnnotation < Base
|
|
382
|
+
attr_reader ampersand_location: Location
|
|
383
|
+
|
|
384
|
+
attr_reader name_location: Location?
|
|
385
|
+
|
|
386
|
+
attr_reader colon_location: Location
|
|
387
|
+
|
|
388
|
+
attr_reader type_location: Location
|
|
389
|
+
|
|
390
|
+
attr_reader type: Types::function
|
|
391
|
+
|
|
392
|
+
attr_reader question_location: Location?
|
|
393
|
+
|
|
394
|
+
attr_reader comment_location: Location?
|
|
395
|
+
|
|
396
|
+
def initialize: (
|
|
397
|
+
location: Location,
|
|
398
|
+
prefix_location: Location,
|
|
399
|
+
ampersand_location: Location,
|
|
400
|
+
name_location: Location?,
|
|
401
|
+
colon_location: Location,
|
|
402
|
+
question_location: Location?,
|
|
403
|
+
type_location: Location,
|
|
404
|
+
type: Types::function,
|
|
405
|
+
comment_location: Location?,
|
|
406
|
+
) -> void
|
|
407
|
+
|
|
408
|
+
def map_type_name: () { (TypeName) -> TypeName } -> self
|
|
409
|
+
|
|
410
|
+
def type_fingerprint: () -> untyped
|
|
411
|
+
|
|
412
|
+
%a{pure} def name: () -> Symbol?
|
|
413
|
+
|
|
414
|
+
def optional?: () -> bool
|
|
415
|
+
|
|
416
|
+
def required?: () -> bool
|
|
106
417
|
end
|
|
107
418
|
end
|
|
108
419
|
end
|
|
@@ -112,7 +112,15 @@ module RBS
|
|
|
112
112
|
|
|
113
113
|
def line_location: (Integer start_line, Integer end_line) -> Location
|
|
114
114
|
|
|
115
|
+
def location: () -> Location
|
|
116
|
+
|
|
115
117
|
private def leading_annotation?: (Integer index) -> bool
|
|
118
|
+
|
|
119
|
+
# Returns an comment object that contains the docs of from the comment block
|
|
120
|
+
#
|
|
121
|
+
# It ignores type annotations and syntax errors.
|
|
122
|
+
#
|
|
123
|
+
def as_comment: () -> AST::Comment?
|
|
116
124
|
end
|
|
117
125
|
end
|
|
118
126
|
end
|
|
@@ -2,7 +2,7 @@ module RBS
|
|
|
2
2
|
module AST
|
|
3
3
|
module Ruby
|
|
4
4
|
module Declarations
|
|
5
|
-
type t = ClassDecl | ModuleDecl
|
|
5
|
+
type t = ClassDecl | ModuleDecl | ConstantDecl | ClassModuleAliasDecl
|
|
6
6
|
|
|
7
7
|
class Base
|
|
8
8
|
attr_reader buffer: Buffer
|
|
@@ -11,27 +11,55 @@ module RBS
|
|
|
11
11
|
include Helpers::LocationHelper
|
|
12
12
|
|
|
13
13
|
def initialize: (Buffer) -> void
|
|
14
|
+
|
|
15
|
+
def type_fingerprint: () -> untyped
|
|
14
16
|
end
|
|
15
17
|
|
|
16
18
|
class ClassDecl < Base
|
|
19
|
+
class SuperClass
|
|
20
|
+
attr_reader operator_location: Location
|
|
21
|
+
|
|
22
|
+
attr_reader type_name_location: Location
|
|
23
|
+
|
|
24
|
+
attr_reader type_name: TypeName
|
|
25
|
+
|
|
26
|
+
attr_reader type_annotation: Annotations::TypeApplicationAnnotation?
|
|
27
|
+
|
|
28
|
+
def type_args: () -> Array[Types::t]
|
|
29
|
+
|
|
30
|
+
alias name type_name
|
|
31
|
+
|
|
32
|
+
alias args type_args
|
|
33
|
+
|
|
34
|
+
def initialize: (Location type_name_location, Location operator_location, TypeName, RBS::AST::Ruby::Annotations::TypeApplicationAnnotation?) -> void
|
|
35
|
+
|
|
36
|
+
def location: () -> Location
|
|
37
|
+
|
|
38
|
+
def type_fingerprint: () -> untyped
|
|
39
|
+
end
|
|
40
|
+
|
|
17
41
|
type member = t | Members::t
|
|
18
42
|
|
|
19
43
|
attr_reader class_name: TypeName
|
|
20
44
|
|
|
21
45
|
attr_reader node: Prism::ClassNode
|
|
22
46
|
|
|
47
|
+
attr_reader super_class: SuperClass?
|
|
48
|
+
|
|
23
49
|
attr_reader members: Array[member]
|
|
24
50
|
|
|
25
|
-
def initialize: (Buffer, TypeName, Prism::ClassNode) -> void
|
|
51
|
+
def initialize: (Buffer, TypeName, Prism::ClassNode, SuperClass?) -> void
|
|
26
52
|
|
|
27
53
|
def each_decl: () { (t) -> void } -> void
|
|
28
54
|
| () -> Enumerator[t]
|
|
29
55
|
|
|
30
|
-
def super_class: () -> nil
|
|
31
|
-
|
|
32
56
|
def type_params: () -> Array[AST::TypeParam]
|
|
33
57
|
|
|
34
58
|
def location: () -> Location
|
|
59
|
+
|
|
60
|
+
def name_location: () -> Location
|
|
61
|
+
|
|
62
|
+
def type_fingerprint: () -> untyped
|
|
35
63
|
end
|
|
36
64
|
|
|
37
65
|
class ModuleDecl < Base
|
|
@@ -53,6 +81,76 @@ module RBS
|
|
|
53
81
|
def location: () -> Location
|
|
54
82
|
|
|
55
83
|
def self_types: () -> Array[AST::Declarations::Module::Self]
|
|
84
|
+
|
|
85
|
+
def name_location: () -> Location
|
|
86
|
+
|
|
87
|
+
def type_fingerprint: () -> untyped
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
class ConstantDecl < Base
|
|
91
|
+
type node = Prism::ConstantWriteNode | Prism::ConstantPathWriteNode
|
|
92
|
+
|
|
93
|
+
attr_reader leading_comment: CommentBlock?
|
|
94
|
+
|
|
95
|
+
attr_reader constant_name: TypeName
|
|
96
|
+
|
|
97
|
+
attr_reader node: node
|
|
98
|
+
|
|
99
|
+
attr_reader type_annotation: Annotations::NodeTypeAssertion?
|
|
100
|
+
|
|
101
|
+
def initialize: (Buffer, TypeName, node, CommentBlock?, Annotations::NodeTypeAssertion?) -> void
|
|
102
|
+
|
|
103
|
+
def location: () -> Location
|
|
104
|
+
|
|
105
|
+
def name_location: () -> Location
|
|
106
|
+
|
|
107
|
+
# Returns the type of the constant
|
|
108
|
+
#
|
|
109
|
+
# - When type_anntoation is given, it returns the type from the annotation.
|
|
110
|
+
# - When type_annotation is not given, it returns infered type from the right-hand-side of the constant assignment
|
|
111
|
+
# - Or it returns `untyped` type
|
|
112
|
+
#
|
|
113
|
+
def type: () -> Types::t
|
|
114
|
+
|
|
115
|
+
# Returns the comment content extracted from the leading comment block
|
|
116
|
+
#
|
|
117
|
+
def comment: () -> AST::Comment?
|
|
118
|
+
|
|
119
|
+
def type_fingerprint: () -> untyped
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
class ClassModuleAliasDecl < Base
|
|
123
|
+
type node = Prism::ConstantWriteNode | Prism::ConstantPathWriteNode
|
|
124
|
+
|
|
125
|
+
type annotation = Annotations::ClassAliasAnnotation | Annotations::ModuleAliasAnnotation
|
|
126
|
+
|
|
127
|
+
attr_reader node: node
|
|
128
|
+
|
|
129
|
+
attr_reader leading_comment: CommentBlock?
|
|
130
|
+
|
|
131
|
+
attr_reader new_name: TypeName
|
|
132
|
+
|
|
133
|
+
# The infered old name from the right-hand side of the constant declaration
|
|
134
|
+
#
|
|
135
|
+
# - `nil` if the annotation has the type name
|
|
136
|
+
#
|
|
137
|
+
attr_reader infered_old_name: TypeName?
|
|
138
|
+
|
|
139
|
+
attr_reader annotation: annotation
|
|
140
|
+
|
|
141
|
+
def initialize: (Buffer, node, TypeName, TypeName?, CommentBlock?, annotation) -> void
|
|
142
|
+
|
|
143
|
+
def name_location: () -> Location
|
|
144
|
+
|
|
145
|
+
def location: () -> Location
|
|
146
|
+
|
|
147
|
+
# Returns the old name of the class/module alias
|
|
148
|
+
#
|
|
149
|
+
def old_name: () -> TypeName
|
|
150
|
+
|
|
151
|
+
def comment: () -> Comment?
|
|
152
|
+
|
|
153
|
+
def type_fingerprint: () -> untyped
|
|
56
154
|
end
|
|
57
155
|
end
|
|
58
156
|
end
|
data/sig/ast/ruby/members.rbs
CHANGED
|
@@ -8,19 +8,44 @@ module RBS
|
|
|
8
8
|
def initialize: (Buffer) -> void
|
|
9
9
|
|
|
10
10
|
include Helpers::LocationHelper
|
|
11
|
+
|
|
12
|
+
def type_fingerprint: () -> untyped
|
|
11
13
|
end
|
|
12
14
|
|
|
13
15
|
type t = DefMember
|
|
16
|
+
| IncludeMember | ExtendMember | PrependMember
|
|
17
|
+
| AttrReaderMember | AttrWriterMember | AttrAccessorMember
|
|
18
|
+
| InstanceVariableMember
|
|
14
19
|
|
|
15
20
|
class MethodTypeAnnotation
|
|
16
21
|
class DocStyle
|
|
22
|
+
type param_type_annotation = Annotations::ParamTypeAnnotation
|
|
23
|
+
| Annotations::SplatParamTypeAnnotation
|
|
24
|
+
| Annotations::DoubleSplatParamTypeAnnotation
|
|
25
|
+
| Annotations::BlockParamTypeAnnotation
|
|
26
|
+
|
|
17
27
|
attr_accessor return_type_annotation: Annotations::ReturnTypeAnnotation | Annotations::NodeTypeAssertion | nil
|
|
18
28
|
|
|
29
|
+
attr_reader required_positionals: Array[Annotations::ParamTypeAnnotation | Symbol]
|
|
30
|
+
attr_reader optional_positionals: Array[Annotations::ParamTypeAnnotation | Symbol]
|
|
31
|
+
attr_accessor rest_positionals: Annotations::SplatParamTypeAnnotation | Symbol | true | nil
|
|
32
|
+
attr_reader trailing_positionals: Array[Annotations::ParamTypeAnnotation | Symbol]
|
|
33
|
+
attr_reader required_keywords: Hash[Symbol, Annotations::ParamTypeAnnotation | Symbol]
|
|
34
|
+
attr_reader optional_keywords: Hash[Symbol, Annotations::ParamTypeAnnotation | Symbol]
|
|
35
|
+
attr_accessor rest_keywords: Annotations::DoubleSplatParamTypeAnnotation | Symbol | true | nil
|
|
36
|
+
attr_accessor block: Annotations::BlockParamTypeAnnotation | Symbol | true | nil
|
|
37
|
+
|
|
19
38
|
def initialize: () -> void
|
|
20
39
|
|
|
40
|
+
def self.build: (Array[param_type_annotation], Annotations::ReturnTypeAnnotation | Annotations::NodeTypeAssertion | nil, Prism::DefNode) -> [DocStyle, Array[param_type_annotation]]
|
|
41
|
+
|
|
42
|
+
def all_param_annotations: () -> Array[param_type_annotation | Symbol | true | nil]
|
|
43
|
+
|
|
21
44
|
def map_type_name: () { (TypeName) -> TypeName } -> self
|
|
22
45
|
|
|
23
46
|
def method_type: () -> MethodType
|
|
47
|
+
|
|
48
|
+
def type_fingerprint: () -> untyped
|
|
24
49
|
end
|
|
25
50
|
|
|
26
51
|
type type_annotations = DocStyle | Array[Annotations::ColonMethodTypeAnnotation | Annotations::MethodTypesAnnotation] | nil
|
|
@@ -35,7 +60,7 @@ module RBS
|
|
|
35
60
|
#
|
|
36
61
|
# Returns a tuple of `DefAnnotations` object, array of unused leading annotations, and unused trailing annotation.
|
|
37
62
|
#
|
|
38
|
-
def self.build: (CommentBlock? leading_block, CommentBlock? trailing_block, Array[Symbol]) -> [
|
|
63
|
+
def self.build: (CommentBlock? leading_block, CommentBlock? trailing_block, Array[Symbol], Prism::DefNode) -> [
|
|
39
64
|
MethodTypeAnnotation,
|
|
40
65
|
Array[Annotations::leading_annotation | CommentBlock::AnnotationSyntaxError],
|
|
41
66
|
Annotations::trailing_annotation | CommentBlock::AnnotationSyntaxError | nil
|
|
@@ -47,6 +72,10 @@ module RBS
|
|
|
47
72
|
# Returns the method type overloads
|
|
48
73
|
#
|
|
49
74
|
def overloads: () -> Array[AST::Members::MethodDefinition::Overload]
|
|
75
|
+
|
|
76
|
+
def overloading?: () -> bool
|
|
77
|
+
|
|
78
|
+
def type_fingerprint: () -> untyped
|
|
50
79
|
end
|
|
51
80
|
|
|
52
81
|
class DefMember < Base
|
|
@@ -55,8 +84,9 @@ module RBS
|
|
|
55
84
|
attr_reader name: Symbol
|
|
56
85
|
attr_reader node: Prism::DefNode
|
|
57
86
|
attr_reader method_type: MethodTypeAnnotation
|
|
87
|
+
attr_reader leading_comment: CommentBlock?
|
|
58
88
|
|
|
59
|
-
def initialize: (Buffer, Symbol name, Prism::DefNode node, MethodTypeAnnotation) -> void
|
|
89
|
+
def initialize: (Buffer, Symbol name, Prism::DefNode node, MethodTypeAnnotation, CommentBlock? leading_comment) -> void
|
|
60
90
|
|
|
61
91
|
def location: () -> Location
|
|
62
92
|
|
|
@@ -65,6 +95,82 @@ module RBS
|
|
|
65
95
|
def overloading?: () -> bool
|
|
66
96
|
|
|
67
97
|
def annotations: () -> Array[AST::Annotation]
|
|
98
|
+
|
|
99
|
+
def name_location: () -> Location
|
|
100
|
+
|
|
101
|
+
def type_fingerprint: () -> untyped
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
class MixinMember < Base
|
|
105
|
+
attr_reader node: Prism::CallNode
|
|
106
|
+
|
|
107
|
+
attr_reader module_name: TypeName
|
|
108
|
+
|
|
109
|
+
attr_reader annotation: Annotations::TypeApplicationAnnotation | nil
|
|
110
|
+
|
|
111
|
+
def initialize: (Buffer, Prism::CallNode, TypeName, Annotations::TypeApplicationAnnotation | nil) -> void
|
|
112
|
+
|
|
113
|
+
def location: () -> Location
|
|
114
|
+
|
|
115
|
+
def name_location: () -> Location
|
|
116
|
+
|
|
117
|
+
def type_args: () -> Array[Types::t]
|
|
118
|
+
|
|
119
|
+
def type_fingerprint: () -> untyped
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
class IncludeMember < MixinMember
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
class ExtendMember < MixinMember
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
class PrependMember < MixinMember
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
class AttributeMember < Base
|
|
132
|
+
attr_reader node: Prism::CallNode
|
|
133
|
+
|
|
134
|
+
attr_reader name_nodes: Array[Prism::SymbolNode]
|
|
135
|
+
|
|
136
|
+
attr_reader type_annotation: Annotations::NodeTypeAssertion?
|
|
137
|
+
|
|
138
|
+
attr_reader leading_comment: CommentBlock?
|
|
139
|
+
|
|
140
|
+
def initialize: (Buffer, Prism::CallNode, Array[Prism::SymbolNode] name_nodes, RBS::AST::Ruby::CommentBlock? leading_comment, Annotations::NodeTypeAssertion? type_annotation) -> void
|
|
141
|
+
|
|
142
|
+
def names: () -> Array[Symbol]
|
|
143
|
+
|
|
144
|
+
def location: () -> Location
|
|
145
|
+
|
|
146
|
+
def name_locations: () -> Array[Location]
|
|
147
|
+
|
|
148
|
+
def type: () -> Types::t?
|
|
149
|
+
|
|
150
|
+
def type_fingerprint: () -> untyped
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
class AttrReaderMember < AttributeMember
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
class AttrWriterMember < AttributeMember
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
class AttrAccessorMember < AttributeMember
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
class InstanceVariableMember < Base
|
|
163
|
+
attr_reader annotation: Annotations::InstanceVariableAnnotation
|
|
164
|
+
|
|
165
|
+
def initialize: (Buffer, Annotations::InstanceVariableAnnotation) -> void
|
|
166
|
+
|
|
167
|
+
def name: () -> Symbol
|
|
168
|
+
|
|
169
|
+
def type: () -> Types::t
|
|
170
|
+
|
|
171
|
+
def location: () -> Location
|
|
172
|
+
|
|
173
|
+
def type_fingerprint: () -> untyped
|
|
68
174
|
end
|
|
69
175
|
end
|
|
70
176
|
end
|