rbs-inline 0.3.0 → 0.5.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/README.md +10 -7
- data/Rakefile +12 -0
- data/lib/rbs/inline/annotation_parser/tokenizer.rb +361 -0
- data/lib/rbs/inline/annotation_parser.rb +548 -326
- data/lib/rbs/inline/ast/annotations.rb +446 -136
- data/lib/rbs/inline/ast/comment_lines.rb +32 -18
- data/lib/rbs/inline/ast/declarations.rb +67 -28
- data/lib/rbs/inline/ast/members.rb +137 -140
- data/lib/rbs/inline/ast/tree.rb +104 -5
- data/lib/rbs/inline/cli.rb +12 -12
- data/lib/rbs/inline/node_utils.rb +4 -0
- data/lib/rbs/inline/parser.rb +140 -59
- data/lib/rbs/inline/version.rb +1 -1
- data/lib/rbs/inline/writer.rb +243 -94
- data/lib/rbs/inline.rb +4 -0
- data/rbs_collection.lock.yaml +3 -7
- data/rbs_collection.yaml +2 -0
- data/sig/generated/rbs/inline/annotation_parser/tokenizer.rbs +221 -0
- data/sig/generated/rbs/inline/annotation_parser.rbs +148 -92
- data/sig/generated/rbs/inline/ast/annotations.rbs +142 -36
- data/sig/generated/rbs/inline/ast/comment_lines.rbs +35 -0
- data/sig/generated/rbs/inline/ast/declarations.rbs +29 -10
- data/sig/generated/rbs/inline/ast/members.rbs +33 -24
- data/sig/generated/rbs/inline/ast/tree.rbs +132 -0
- data/sig/generated/rbs/inline/cli.rbs +3 -3
- data/sig/generated/rbs/inline/node_utils.rbs +11 -0
- data/sig/generated/rbs/inline/parser.rbs +38 -18
- data/sig/generated/rbs/inline/version.rbs +7 -0
- data/sig/generated/rbs/inline/writer.rbs +104 -0
- data/sig/generated/rbs/inline.rbs +7 -0
- metadata +14 -14
- data/sig/rbs/inline/annotation_parser.rbs +0 -0
- data/sig/rbs/inline/ast/comment_lines.rbs +0 -27
- data/sig/rbs/inline/ast/tree.rbs +0 -98
- data/sig/rbs/inline/node_utils.rbs +0 -7
- data/sig/rbs/inline/writer.rbs +0 -27
- data/sig/rbs/inline.rbs +0 -41
- data/yard-samples/hello.rb +0 -6
- data/yard-samples/sample1.rb +0 -26
@@ -4,6 +4,25 @@ module RBS
|
|
4
4
|
module Inline
|
5
5
|
module AST
|
6
6
|
module Annotations
|
7
|
+
type t = VarType | ReturnType | Use | Inherits | Generic | ModuleSelf | Skip | MethodTypeAssertion | TypeAssertion | SyntaxErrorAssertion | Dot3Assertion | Application | RBSAnnotation | Override | IvarType | Embedded | Method | SplatParamType | DoubleSplatParamType | BlockType | ModuleDecl | ClassDecl
|
8
|
+
|
9
|
+
module Utils
|
10
|
+
# @rbs (Tree) -> RBS::AST::TypeParam?
|
11
|
+
def translate_type_param: (Tree) -> RBS::AST::TypeParam?
|
12
|
+
|
13
|
+
# @rbs (Types::t) -> RBS::AST::Declarations::Class::Super?
|
14
|
+
def translate_super_class: (Types::t) -> RBS::AST::Declarations::Class::Super?
|
15
|
+
|
16
|
+
# Assumes the tree is generated through `#parse_module_name`
|
17
|
+
#
|
18
|
+
# Returns a type name, or `nil` if the tree is something invalid.
|
19
|
+
#
|
20
|
+
# @param tree -- A tree object that is generated through `#parse_module_name`
|
21
|
+
#
|
22
|
+
# @rbs (AST::Tree) -> TypeName?
|
23
|
+
def translate_type_name: (AST::Tree) -> TypeName?
|
24
|
+
end
|
25
|
+
|
7
26
|
class Base
|
8
27
|
attr_reader source: CommentLines
|
9
28
|
|
@@ -11,7 +30,7 @@ module RBS
|
|
11
30
|
|
12
31
|
# @rbs tree: Tree
|
13
32
|
# @rbs source: CommentLines
|
14
|
-
# @rbs
|
33
|
+
# @rbs return: void
|
15
34
|
def initialize: (Tree tree, CommentLines source) -> void
|
16
35
|
end
|
17
36
|
|
@@ -25,11 +44,46 @@ module RBS
|
|
25
44
|
# @rbs override
|
26
45
|
def initialize: ...
|
27
46
|
|
28
|
-
#
|
47
|
+
# : () -> bool
|
29
48
|
def complete?: () -> bool
|
30
49
|
end
|
31
50
|
|
32
|
-
|
51
|
+
class SpecialVarTypeAnnotation < Base
|
52
|
+
attr_reader name: Symbol?
|
53
|
+
|
54
|
+
attr_reader type: Types::t?
|
55
|
+
|
56
|
+
attr_reader comment: String?
|
57
|
+
|
58
|
+
attr_reader type_source: String
|
59
|
+
|
60
|
+
# @rbs override
|
61
|
+
def initialize: ...
|
62
|
+
end
|
63
|
+
|
64
|
+
# `@rbs *x: T`
|
65
|
+
class SplatParamType < SpecialVarTypeAnnotation
|
66
|
+
end
|
67
|
+
|
68
|
+
# `@rbs` **x: T
|
69
|
+
class DoubleSplatParamType < SpecialVarTypeAnnotation
|
70
|
+
end
|
71
|
+
|
72
|
+
# `@rbs &block: METHOD-TYPE` or `@rbs &block: ? METHOD-TYPE`
|
73
|
+
class BlockType < Base
|
74
|
+
attr_reader name: Symbol?
|
75
|
+
|
76
|
+
attr_reader type: Types::Block?
|
77
|
+
|
78
|
+
attr_reader comment: String?
|
79
|
+
|
80
|
+
attr_reader type_source: String
|
81
|
+
|
82
|
+
# @rbs override
|
83
|
+
def initialize: ...
|
84
|
+
end
|
85
|
+
|
86
|
+
# `@rbs return: T`
|
33
87
|
class ReturnType < Base
|
34
88
|
attr_reader type: Types::t?
|
35
89
|
|
@@ -38,7 +92,7 @@ module RBS
|
|
38
92
|
# @rbs override
|
39
93
|
def initialize: ...
|
40
94
|
|
41
|
-
# @rbs
|
95
|
+
# @rbs return: bool
|
42
96
|
def complete?: () -> bool
|
43
97
|
end
|
44
98
|
|
@@ -56,53 +110,45 @@ module RBS
|
|
56
110
|
def initialize: ...
|
57
111
|
end
|
58
112
|
|
59
|
-
|
60
|
-
|
61
|
-
attr_reader type: Types::t | MethodType | nil
|
113
|
+
class MethodTypeAssertion < Base
|
114
|
+
attr_reader method_type: MethodType
|
62
115
|
|
63
|
-
|
64
|
-
|
65
|
-
# @rbs returns bool
|
66
|
-
def complete?: () -> bool
|
67
|
-
|
68
|
-
# Returns a type if it's type
|
69
|
-
def type?: () -> Types::t?
|
116
|
+
# @rbs override
|
117
|
+
def initialize: ...
|
70
118
|
|
71
|
-
|
72
|
-
def method_type?: () -> MethodType?
|
119
|
+
def type_source: () -> String
|
73
120
|
end
|
74
121
|
|
75
|
-
|
76
|
-
|
77
|
-
attr_reader types: Array[Types::t]?
|
122
|
+
class TypeAssertion < Base
|
123
|
+
attr_reader type: Types::t
|
78
124
|
|
79
125
|
# @rbs override
|
80
126
|
def initialize: ...
|
81
127
|
|
82
|
-
|
83
|
-
def complete?: () -> bool
|
128
|
+
def type_source: () -> String
|
84
129
|
end
|
85
130
|
|
86
|
-
|
87
|
-
|
88
|
-
# The type of block
|
89
|
-
#
|
90
|
-
# * Types::Block when syntactically correct input is given
|
91
|
-
# * String when syntax error is reported
|
92
|
-
# * `nil` when nothing is given
|
93
|
-
attr_reader block_type: Types::Block | String | nil
|
131
|
+
class SyntaxErrorAssertion < Base
|
132
|
+
attr_reader error_string: String
|
94
133
|
|
95
|
-
#
|
96
|
-
|
134
|
+
# @rbs override
|
135
|
+
def initialize: ...
|
136
|
+
end
|
97
137
|
|
98
|
-
|
99
|
-
#
|
100
|
-
|
101
|
-
|
102
|
-
|
138
|
+
class Dot3Assertion < Base
|
139
|
+
# @rbs override
|
140
|
+
def initialize: ...
|
141
|
+
end
|
142
|
+
|
143
|
+
# `#[TYPE, ..., TYPE]`
|
144
|
+
class Application < Base
|
145
|
+
attr_reader types: Array[Types::t]?
|
103
146
|
|
104
147
|
# @rbs override
|
105
148
|
def initialize: ...
|
149
|
+
|
150
|
+
# @rbs return: bool
|
151
|
+
def complete?: () -> bool
|
106
152
|
end
|
107
153
|
|
108
154
|
# `# @rbs %a{a} %a{a} ...`
|
@@ -168,6 +214,8 @@ module RBS
|
|
168
214
|
|
169
215
|
attr_reader comment: String?
|
170
216
|
|
217
|
+
include Utils
|
218
|
+
|
171
219
|
# @rbs override
|
172
220
|
def initialize: ...
|
173
221
|
end
|
@@ -179,6 +227,64 @@ module RBS
|
|
179
227
|
# @rbs override
|
180
228
|
def initialize: ...
|
181
229
|
end
|
230
|
+
|
231
|
+
# `@rbs METHOD-TYPE``
|
232
|
+
class Method < Base
|
233
|
+
type method_type = [ MethodType, method_type? ] | String
|
234
|
+
|
235
|
+
attr_reader method_types: method_type?
|
236
|
+
|
237
|
+
# `true` if the method definition is overloading something
|
238
|
+
attr_reader overloading: bool
|
239
|
+
|
240
|
+
attr_reader type: MethodType?
|
241
|
+
|
242
|
+
attr_reader method_type_source: String
|
243
|
+
|
244
|
+
# @rbs override
|
245
|
+
def initialize: ...
|
246
|
+
|
247
|
+
# : (Array[tree]) -> method_type?
|
248
|
+
def construct_method_types: (Array[tree]) -> method_type?
|
249
|
+
|
250
|
+
# @rbs () { (MethodType) -> void } -> void
|
251
|
+
# | () -> Enumerator[MethodType, void]
|
252
|
+
def each_method_type: () { (MethodType) -> void } -> void
|
253
|
+
| () -> Enumerator[MethodType, void]
|
254
|
+
|
255
|
+
# Returns the parsing error overload string
|
256
|
+
#
|
257
|
+
# Returns `nil` if no parsing error found.
|
258
|
+
def error_source: () -> String?
|
259
|
+
end
|
260
|
+
|
261
|
+
# `@rbs module Foo`
|
262
|
+
class ModuleDecl < Base
|
263
|
+
attr_reader name: TypeName?
|
264
|
+
|
265
|
+
attr_reader type_params: Array[RBS::AST::TypeParam]
|
266
|
+
|
267
|
+
attr_reader self_types: Array[RBS::AST::Declarations::Module::Self]
|
268
|
+
|
269
|
+
include Utils
|
270
|
+
|
271
|
+
# @rbs override
|
272
|
+
def initialize: ...
|
273
|
+
end
|
274
|
+
|
275
|
+
# `@rbs class Foo`
|
276
|
+
class ClassDecl < Base
|
277
|
+
attr_reader name: TypeName?
|
278
|
+
|
279
|
+
attr_reader type_params: Array[RBS::AST::TypeParam]
|
280
|
+
|
281
|
+
attr_reader super_class: RBS::AST::Declarations::Class::Super?
|
282
|
+
|
283
|
+
include Utils
|
284
|
+
|
285
|
+
# @rbs override
|
286
|
+
def initialize: ...
|
287
|
+
end
|
182
288
|
end
|
183
289
|
end
|
184
290
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Generated from lib/rbs/inline/ast/comment_lines.rb with RBS::Inline
|
2
|
+
|
3
|
+
module RBS
|
4
|
+
module Inline
|
5
|
+
module AST
|
6
|
+
# CommentLines represents consecutive comments, providing a mapping from locations in `#string` to a pair of a comment and its offset
|
7
|
+
#
|
8
|
+
# The comments construct one String.
|
9
|
+
#
|
10
|
+
# ```ruby
|
11
|
+
# # Hello <-- Comment1
|
12
|
+
# # World <-- Comment2
|
13
|
+
# ```
|
14
|
+
#
|
15
|
+
# We want to get a String of comment1 and comment2, `"Hello\nWorld".
|
16
|
+
# And want to translate a location in the string into the location in comment1 and comment2.
|
17
|
+
class CommentLines
|
18
|
+
attr_reader comments: Array[Prism::Comment]
|
19
|
+
|
20
|
+
# @rbs comments: Array[Prism::Comment]
|
21
|
+
def initialize: (Array[Prism::Comment] comments) -> void
|
22
|
+
|
23
|
+
def lines: () -> Array[String]
|
24
|
+
|
25
|
+
def string: () -> String
|
26
|
+
|
27
|
+
# Translates the cursor index of `#string` into the cursor index of a specific comment object
|
28
|
+
#
|
29
|
+
# @rbs index: Integer
|
30
|
+
# @rbs return: [Prism::Comment, Integer]?
|
31
|
+
def comment_location: (Integer index) -> [ Prism::Comment, Integer ]?
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -6,11 +6,11 @@ module RBS
|
|
6
6
|
module Declarations
|
7
7
|
module ConstantUtil
|
8
8
|
# @rbs node: Prism::Node
|
9
|
-
# @rbs
|
9
|
+
# @rbs return: TypeName?
|
10
10
|
def type_name: (Prism::Node node) -> TypeName?
|
11
11
|
end
|
12
12
|
|
13
|
-
type t = ClassDecl | ModuleDecl | ConstantDecl
|
13
|
+
type t = ClassDecl | ModuleDecl | ConstantDecl | SingletonClassDecl | BlockDecl
|
14
14
|
|
15
15
|
interface _WithComments
|
16
16
|
def comments: () -> AnnotationParser::ParsingResult?
|
@@ -18,7 +18,7 @@ module RBS
|
|
18
18
|
|
19
19
|
# @rbs module-self _WithComments
|
20
20
|
module Generics : _WithComments
|
21
|
-
# @rbs
|
21
|
+
# @rbs return: Array[RBS::AST::TypeParam]
|
22
22
|
def type_params: () -> Array[RBS::AST::TypeParam]
|
23
23
|
end
|
24
24
|
|
@@ -55,7 +55,7 @@ module RBS
|
|
55
55
|
# @rbs node: Prism::ClassNode
|
56
56
|
# @rbs comments: AnnotationParser::ParsingResult?
|
57
57
|
# @rbs super_app: Annotations::Application?
|
58
|
-
# @rbs
|
58
|
+
# @rbs return: void
|
59
59
|
def initialize: (Prism::ClassNode node, AnnotationParser::ParsingResult? comments, Annotations::Application? super_app) -> void
|
60
60
|
|
61
61
|
# @rbs %a{pure}
|
@@ -86,30 +86,49 @@ module RBS
|
|
86
86
|
|
87
87
|
attr_reader comments: AnnotationParser::ParsingResult?
|
88
88
|
|
89
|
-
attr_reader assertion: Annotations::
|
89
|
+
attr_reader assertion: Annotations::TypeAssertion?
|
90
90
|
|
91
91
|
# @rbs node: Prism::ConstantWriteNode
|
92
92
|
# @rbs comments: AnnotationParser::ParsingResult?
|
93
|
-
# @rbs assertion: Annotations::
|
94
|
-
def initialize: (Prism::ConstantWriteNode node, AnnotationParser::ParsingResult? comments, Annotations::
|
93
|
+
# @rbs assertion: Annotations::TypeAssertion?
|
94
|
+
def initialize: (Prism::ConstantWriteNode node, AnnotationParser::ParsingResult? comments, Annotations::TypeAssertion? assertion) -> void
|
95
95
|
|
96
96
|
# @rbs %a{pure}
|
97
|
-
# @rbs
|
97
|
+
# @rbs return: Types::t
|
98
98
|
%a{pure}
|
99
99
|
def type: () -> Types::t
|
100
100
|
|
101
101
|
# @rbs %a{pure}
|
102
102
|
# @rbs return Types::t?
|
103
103
|
%a{pure}
|
104
|
-
def literal_type: () ->
|
104
|
+
def literal_type: () -> Types::t?
|
105
105
|
|
106
106
|
# @rbs %a{pure}
|
107
|
-
# @rbs
|
107
|
+
# @rbs return: TypeName?
|
108
108
|
%a{pure}
|
109
109
|
def constant_name: () -> TypeName?
|
110
110
|
|
111
111
|
def start_line: () -> Integer
|
112
112
|
end
|
113
|
+
|
114
|
+
class SingletonClassDecl < ModuleOrClass[Prism::SingletonClassNode]
|
115
|
+
end
|
116
|
+
|
117
|
+
class BlockDecl < Base
|
118
|
+
attr_reader node: Prism::BlockNode
|
119
|
+
|
120
|
+
attr_reader comments: AnnotationParser::ParsingResult?
|
121
|
+
|
122
|
+
# Members included in the declaration
|
123
|
+
attr_reader members: Array[Members::t | t]
|
124
|
+
|
125
|
+
# @rbs (Prism::BlockNode, AnnotationParser::ParsingResult?) -> void
|
126
|
+
def initialize: (Prism::BlockNode, AnnotationParser::ParsingResult?) -> void
|
127
|
+
|
128
|
+
def start_line: () -> Integer
|
129
|
+
|
130
|
+
def module_class_annotation: () -> (Annotations::ModuleDecl | Annotations::ClassDecl | nil)
|
131
|
+
end
|
113
132
|
end
|
114
133
|
end
|
115
134
|
end
|
@@ -4,6 +4,12 @@ module RBS
|
|
4
4
|
module Inline
|
5
5
|
module AST
|
6
6
|
module Members
|
7
|
+
type ruby = RubyDef | RubyAlias | RubyMixin | RubyAttr | RubyPublic | RubyPrivate
|
8
|
+
|
9
|
+
type rbs = RBSIvar | RBSEmbedded
|
10
|
+
|
11
|
+
type t = ruby | rbs
|
12
|
+
|
7
13
|
class Base
|
8
14
|
attr_reader location: Prism::Location
|
9
15
|
|
@@ -31,40 +37,41 @@ module RBS
|
|
31
37
|
# ```
|
32
38
|
attr_reader visibility: RBS::AST::Members::visibility?
|
33
39
|
|
34
|
-
|
40
|
+
# Assertion given at the end of the method name
|
41
|
+
attr_reader assertion: Annotations::TypeAssertion?
|
35
42
|
|
36
43
|
# @rbs node: Prism::DefNode
|
37
44
|
# @rbs comments: AnnotationParser::ParsingResult?
|
38
45
|
# @rbs visibility: RBS::AST::Members::visibility?
|
39
|
-
# @rbs assertion: Annotations::
|
40
|
-
def initialize: (Prism::DefNode node, AnnotationParser::ParsingResult? comments, RBS::AST::Members::visibility? visibility, Annotations::
|
46
|
+
# @rbs assertion: Annotations::TypeAssertion?
|
47
|
+
def initialize: (Prism::DefNode node, AnnotationParser::ParsingResult? comments, RBS::AST::Members::visibility? visibility, Annotations::TypeAssertion? assertion) -> void
|
41
48
|
|
42
49
|
# Returns the name of the method
|
43
50
|
def method_name: () -> Symbol
|
44
51
|
|
45
|
-
|
46
|
-
|
47
|
-
# Returns the `kind` of the method definition
|
48
|
-
#
|
49
|
-
# [FIXME] It only supports `self` receiver.
|
52
|
+
# Returns `nil` if no `@rbs METHOD-TYPE` or `#:` annotation is given
|
50
53
|
#
|
51
|
-
#
|
52
|
-
|
53
|
-
# def object.foo = () # Not supported (returns :instance)
|
54
|
-
# ```
|
55
|
-
def method_kind: () -> RBS::AST::Members::MethodDefinition::kind
|
54
|
+
# Returns an empty array if only `...` method type is given.
|
55
|
+
def annotated_method_types: () -> Array[MethodType]?
|
56
56
|
|
57
57
|
def return_type: () -> Types::t?
|
58
58
|
|
59
59
|
def var_type_hash: () -> Hash[Symbol, Types::t?]
|
60
60
|
|
61
|
+
def splat_param_type_annotation: () -> Annotations::SplatParamType?
|
62
|
+
|
63
|
+
def double_splat_param_type_annotation: () -> Annotations::DoubleSplatParamType?
|
64
|
+
|
65
|
+
def overloading?: () -> bool
|
66
|
+
|
61
67
|
def method_overloads: () -> Array[RBS::AST::Members::MethodDefinition::Overload]
|
62
68
|
|
63
69
|
def method_annotations: () -> Array[RBS::AST::Annotation]
|
64
70
|
|
71
|
+
# Returns the `@rbs override` annotation
|
65
72
|
def override_annotation: () -> AST::Annotations::Override?
|
66
73
|
|
67
|
-
def
|
74
|
+
def block_type_annotation: () -> AST::Annotations::BlockType?
|
68
75
|
end
|
69
76
|
|
70
77
|
class RubyAlias < RubyBase
|
@@ -74,16 +81,18 @@ module RBS
|
|
74
81
|
|
75
82
|
# @rbs node: Prism::AliasMethodNode
|
76
83
|
# @rbs comments: AnnotationParser::ParsingResult?
|
77
|
-
def initialize: (Prism::AliasMethodNode node, AnnotationParser::ParsingResult? comments) ->
|
84
|
+
def initialize: (Prism::AliasMethodNode node, AnnotationParser::ParsingResult? comments) -> void
|
78
85
|
|
79
|
-
# @rbs
|
86
|
+
# @rbs return: Symbol -- the name of *old* method
|
80
87
|
def old_name: () -> Symbol
|
81
88
|
|
82
|
-
# @rbs
|
89
|
+
# @rbs return: Symbol -- the name of *new* method
|
83
90
|
def new_name: () -> Symbol
|
84
91
|
end
|
85
92
|
|
86
93
|
class RubyMixin < RubyBase
|
94
|
+
include Declarations::ConstantUtil
|
95
|
+
|
87
96
|
# CallNode that calls `include`, `prepend`, and `extend` method
|
88
97
|
attr_reader node: Prism::CallNode
|
89
98
|
|
@@ -96,10 +105,10 @@ module RBS
|
|
96
105
|
# @rbs node: Prism::CallNode
|
97
106
|
# @rbs comments: AnnotationParser::ParsingResult?
|
98
107
|
# @rbs application: Annotations::Application?
|
99
|
-
# @rbs
|
108
|
+
# @rbs return: void
|
100
109
|
def initialize: (Prism::CallNode node, AnnotationParser::ParsingResult? comments, Annotations::Application? application) -> void
|
101
110
|
|
102
|
-
# @rbs
|
111
|
+
# @rbs return: ::RBS::AST::Members::Include
|
103
112
|
# | ::RBS::AST::Members::Extend
|
104
113
|
# | ::RBS::AST::Members::Prepend
|
105
114
|
# | nil
|
@@ -111,16 +120,16 @@ module RBS
|
|
111
120
|
|
112
121
|
attr_reader comments: AnnotationParser::ParsingResult?
|
113
122
|
|
114
|
-
attr_reader assertion: Annotations::
|
123
|
+
attr_reader assertion: Annotations::TypeAssertion?
|
115
124
|
|
116
125
|
# @rbs node: Prism::CallNode
|
117
126
|
# @rbs comments: AnnotationParser::ParsingResult?
|
118
|
-
# @rbs assertion: Annotations::
|
119
|
-
# @rbs
|
120
|
-
def initialize: (Prism::CallNode node, AnnotationParser::ParsingResult? comments, Annotations::
|
127
|
+
# @rbs assertion: Annotations::TypeAssertion?
|
128
|
+
# @rbs return: void
|
129
|
+
def initialize: (Prism::CallNode node, AnnotationParser::ParsingResult? comments, Annotations::TypeAssertion? assertion) -> void
|
121
130
|
|
122
131
|
# @rbs return Array[RBS::AST::Members::AttrReader | RBS::AST::Members::AttrWriter | RBS::AST::Members::AttrAccessor]?
|
123
|
-
def rbs: () ->
|
132
|
+
def rbs: () -> Array[RBS::AST::Members::AttrReader | RBS::AST::Members::AttrWriter | RBS::AST::Members::AttrAccessor]?
|
124
133
|
|
125
134
|
# Returns the type of the attribute
|
126
135
|
#
|
@@ -0,0 +1,132 @@
|
|
1
|
+
# Generated from lib/rbs/inline/ast/tree.rb with RBS::Inline
|
2
|
+
|
3
|
+
module RBS
|
4
|
+
module Inline
|
5
|
+
module AST
|
6
|
+
type token = [ Symbol, String ]
|
7
|
+
|
8
|
+
type tree = token | Tree | Types::t | MethodType | nil
|
9
|
+
|
10
|
+
class Tree
|
11
|
+
attr_reader trees: Array[tree]
|
12
|
+
|
13
|
+
attr_reader type: Symbol
|
14
|
+
|
15
|
+
# Children but without `tWHITESPACE` tokens
|
16
|
+
attr_reader non_trivia_trees: Array[tree]
|
17
|
+
|
18
|
+
# @rbs type: Symbol
|
19
|
+
def initialize: (Symbol type) -> void
|
20
|
+
|
21
|
+
# @rbs tok: tree
|
22
|
+
# @rbs return: self
|
23
|
+
def <<: (tree tok) -> self
|
24
|
+
|
25
|
+
# Returns the source code associated to the tree
|
26
|
+
def to_s: () -> String
|
27
|
+
|
28
|
+
# Returns `true` if token at the given index is of the given type
|
29
|
+
def token?: (untyped type, at: untyped) -> untyped
|
30
|
+
|
31
|
+
# Returns `true` if tree at the given index is of the given type
|
32
|
+
def tree?: (untyped type, at: untyped) -> untyped
|
33
|
+
|
34
|
+
# Returns n-th token from the children
|
35
|
+
#
|
36
|
+
# Raises if the value is not a token or nil.
|
37
|
+
#
|
38
|
+
# @rbs index: Integer
|
39
|
+
# @rbs return: token?
|
40
|
+
def nth_token: (Integer index) -> token?
|
41
|
+
|
42
|
+
# Returns n-th token from the children
|
43
|
+
#
|
44
|
+
# Returns `nil` if the value is not a token.
|
45
|
+
#
|
46
|
+
# @rbs index: Integer
|
47
|
+
# @rbs return: token?
|
48
|
+
def nth_token?: (Integer index) -> token?
|
49
|
+
|
50
|
+
# Returns n-th token from the children
|
51
|
+
#
|
52
|
+
# Raises if the value is not token.
|
53
|
+
#
|
54
|
+
# @rbs index: Integer
|
55
|
+
# @rbs return: token
|
56
|
+
def nth_token!: (Integer index) -> token
|
57
|
+
|
58
|
+
# Returns n-th tree from the children
|
59
|
+
#
|
60
|
+
# Raises if the value is not a tree or nil.
|
61
|
+
#
|
62
|
+
# @rbs index: Integer
|
63
|
+
# @rbs return: Tree?
|
64
|
+
def nth_tree: (Integer index) -> Tree?
|
65
|
+
|
66
|
+
# Returns n-th tree from the children
|
67
|
+
#
|
68
|
+
# Returns `nil` if the value is not a tree or nil.
|
69
|
+
#
|
70
|
+
# @rbs index: Integer
|
71
|
+
# @rbs return: Tree?
|
72
|
+
def nth_tree?: (Integer index) -> Tree?
|
73
|
+
|
74
|
+
# Returns n-th tree from the children
|
75
|
+
#
|
76
|
+
# Raises if the value is not a tree.
|
77
|
+
#
|
78
|
+
# @rbs index: Integer
|
79
|
+
# @rbs return: Tree
|
80
|
+
def nth_tree!: (Integer index) -> Tree
|
81
|
+
|
82
|
+
# Returns n-th type from the children
|
83
|
+
#
|
84
|
+
# Raises if the value is not a type or nil.
|
85
|
+
#
|
86
|
+
# @rbs index: Integer
|
87
|
+
# @rbs return: Types::t?
|
88
|
+
def nth_type: (Integer index) -> Types::t?
|
89
|
+
|
90
|
+
# Returns n-th type from the children
|
91
|
+
#
|
92
|
+
# Returns `nil` if the value is not a type.
|
93
|
+
#
|
94
|
+
# @rbs index: Integer
|
95
|
+
# @rbs return: Types::t?
|
96
|
+
def nth_type?: (Integer index) -> Types::t?
|
97
|
+
|
98
|
+
# Returns n-th type from the children
|
99
|
+
#
|
100
|
+
# Raises if the value is not a type.
|
101
|
+
#
|
102
|
+
# @rbs index: Integer
|
103
|
+
# @rbs return: Types::t
|
104
|
+
def nth_type!: (Integer index) -> Types::t
|
105
|
+
|
106
|
+
# Returns n-th method type from the children
|
107
|
+
#
|
108
|
+
# Raises if the value is not a method type or `nil`.
|
109
|
+
#
|
110
|
+
# @rbs index: Integer
|
111
|
+
# @rbs return: MethodType?
|
112
|
+
def nth_method_type: (Integer index) -> MethodType?
|
113
|
+
|
114
|
+
# Returns n-th method type from the children
|
115
|
+
#
|
116
|
+
# Returns `nil` if the value is not a method type.
|
117
|
+
#
|
118
|
+
# @rbs index: Integer
|
119
|
+
# @rbs return: MethodType?
|
120
|
+
def nth_method_type?: (Integer index) -> MethodType?
|
121
|
+
|
122
|
+
# Returns n-th method tree from the children
|
123
|
+
#
|
124
|
+
# Raises if the value is not a method tree.
|
125
|
+
#
|
126
|
+
# @rbs index: Integer
|
127
|
+
# @rbs return: MethodType
|
128
|
+
def nth_method_type!: (Integer index) -> MethodType
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
@@ -25,12 +25,12 @@ module RBS
|
|
25
25
|
# @rbs output_path: Pathname
|
26
26
|
def initialize: (Pathname pwd, Array[Pathname] base_paths, Pathname output_path) -> void
|
27
27
|
|
28
|
-
#
|
28
|
+
# : (Pathname) -> Pathname?
|
29
29
|
def calculate: (Pathname) -> Pathname?
|
30
30
|
|
31
31
|
# @rbs path: Pathname
|
32
32
|
# @rbs prefix: Pathname
|
33
|
-
# @rbs
|
33
|
+
# @rbs return: bool
|
34
34
|
def has_prefix?: (Pathname path, prefix: Pathname) -> bool
|
35
35
|
end
|
36
36
|
|
@@ -45,7 +45,7 @@ module RBS
|
|
45
45
|
def initialize: (?stdout: IO, ?stderr: IO) -> void
|
46
46
|
|
47
47
|
# @rbs args: Array[String]
|
48
|
-
# @rbs
|
48
|
+
# @rbs return: Integer
|
49
49
|
def run: (Array[String] args) -> Integer
|
50
50
|
end
|
51
51
|
end
|