ruby-lsp 0.2.1 → 0.2.4
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/CHANGELOG.md +14 -0
- data/VERSION +1 -1
- data/lib/ruby_lsp/handler.rb +0 -19
- data/lib/ruby_lsp/requests/document_link.rb +119 -0
- data/lib/ruby_lsp/requests/semantic_highlighting.rb +11 -5
- data/lib/ruby_lsp/requests/support/highlight_target.rb +2 -1
- data/lib/ruby_lsp/requests/support/rubocop_diagnostic.rb +9 -2
- data/lib/ruby_lsp/requests/support/source_uri.rb +82 -0
- data/lib/ruby_lsp/requests.rb +2 -0
- data/lib/ruby_lsp/server.rb +52 -19
- metadata +4 -69
- data/.github/dependabot.yml +0 -11
- data/.github/probots.yml +0 -2
- data/.github/pull_request_template.md +0 -15
- data/.github/workflows/ci.yml +0 -31
- data/.github/workflows/publish_docs.yml +0 -32
- data/.gitignore +0 -9
- data/.rubocop.yml +0 -40
- data/.vscode/extensions.json +0 -5
- data/.vscode/settings.json +0 -5
- data/.vscode/tasks.json +0 -25
- data/CODE_OF_CONDUCT.md +0 -78
- data/Gemfile +0 -18
- data/Gemfile.lock +0 -126
- data/Rakefile +0 -28
- data/bin/console +0 -19
- data/bin/rubocop +0 -29
- data/bin/tapioca +0 -29
- data/bin/test +0 -9
- data/dev.yml +0 -20
- data/rakelib/check_docs.rake +0 -81
- data/ruby-lsp.gemspec +0 -27
- data/service.yml +0 -2
- data/sorbet/config +0 -4
- data/sorbet/rbi/.rubocop.yml +0 -8
- data/sorbet/rbi/gems/ansi@1.5.0.rbi +0 -338
- data/sorbet/rbi/gems/ast@2.4.2.rbi +0 -522
- data/sorbet/rbi/gems/builder@3.2.4.rbi +0 -418
- data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -8
- data/sorbet/rbi/gems/debug@1.5.0.rbi +0 -1273
- data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +0 -867
- data/sorbet/rbi/gems/io-console@0.5.11.rbi +0 -8
- data/sorbet/rbi/gems/irb@1.4.1.rbi +0 -376
- data/sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi +0 -7325
- data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -8
- data/sorbet/rbi/gems/minitest-reporters@1.5.0.rbi +0 -612
- data/sorbet/rbi/gems/minitest@5.15.0.rbi +0 -994
- data/sorbet/rbi/gems/parallel@1.22.1.rbi +0 -163
- data/sorbet/rbi/gems/parser@3.1.2.0.rbi +0 -3968
- data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +0 -734
- data/sorbet/rbi/gems/pry@0.14.1.rbi +0 -8
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +0 -227
- data/sorbet/rbi/gems/rake@13.0.6.rbi +0 -1853
- data/sorbet/rbi/gems/rbi@0.0.14.rbi +0 -2337
- data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +0 -1854
- data/sorbet/rbi/gems/reline@0.3.1.rbi +0 -1274
- data/sorbet/rbi/gems/rexml@3.2.5.rbi +0 -3852
- data/sorbet/rbi/gems/rubocop-ast@1.18.0.rbi +0 -4180
- data/sorbet/rbi/gems/rubocop-minitest@0.20.0.rbi +0 -1369
- data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +0 -246
- data/sorbet/rbi/gems/rubocop-shopify@2.6.0.rbi +0 -8
- data/sorbet/rbi/gems/rubocop-sorbet@0.6.8.rbi +0 -652
- data/sorbet/rbi/gems/rubocop@1.30.0.rbi +0 -36729
- data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +0 -732
- data/sorbet/rbi/gems/spoom@1.1.11.rbi +0 -1600
- data/sorbet/rbi/gems/syntax_tree@2.7.1.rbi +0 -6777
- data/sorbet/rbi/gems/tapioca@0.8.1.rbi +0 -1972
- data/sorbet/rbi/gems/thor@1.2.1.rbi +0 -2921
- data/sorbet/rbi/gems/unicode-display_width@2.1.0.rbi +0 -27
- data/sorbet/rbi/gems/unparser@0.6.5.rbi +0 -2789
- data/sorbet/rbi/gems/webrick@1.7.0.rbi +0 -1779
- data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +0 -289
- data/sorbet/rbi/gems/yard@0.9.27.rbi +0 -13048
- data/sorbet/rbi/shims/fiddle.rbi +0 -4
- data/sorbet/rbi/shims/hash.rbi +0 -6
- data/sorbet/rbi/shims/rdoc.rbi +0 -4
- data/sorbet/tapioca/config.yml +0 -13
- data/sorbet/tapioca/require.rb +0 -7
@@ -1,4180 +0,0 @@
|
|
1
|
-
# typed: true
|
2
|
-
|
3
|
-
# DO NOT EDIT MANUALLY
|
4
|
-
# This is an autogenerated file for types exported from the `rubocop-ast` gem.
|
5
|
-
# Please instead update this file by running `bin/tapioca gem rubocop-ast`.
|
6
|
-
|
7
|
-
module RuboCop; end
|
8
|
-
|
9
|
-
# ...
|
10
|
-
module RuboCop::AST
|
11
|
-
extend ::RuboCop::AST::RuboCopCompatibility
|
12
|
-
end
|
13
|
-
|
14
|
-
# A node extension for `alias` nodes. This will be used in place of a plain
|
15
|
-
# node when the builder constructs the AST, making its methods available
|
16
|
-
# to all `alias` nodes within RuboCop.
|
17
|
-
class RuboCop::AST::AliasNode < ::RuboCop::AST::Node
|
18
|
-
# Returns the new identifier as specified by the `alias`.
|
19
|
-
#
|
20
|
-
# @return [SymbolNode] the new identifier
|
21
|
-
def new_identifier; end
|
22
|
-
|
23
|
-
# Returns the old identifier as specified by the `alias`.
|
24
|
-
#
|
25
|
-
# @return [SymbolNode] the old identifier
|
26
|
-
def old_identifier; end
|
27
|
-
end
|
28
|
-
|
29
|
-
# A node extension for `op_asgn` nodes.
|
30
|
-
# This will be used in place of a plain node when the builder constructs
|
31
|
-
# the AST, making its methods available to all assignment nodes within RuboCop.
|
32
|
-
class RuboCop::AST::AndAsgnNode < ::RuboCop::AST::OpAsgnNode
|
33
|
-
# The operator being used for assignment as a symbol.
|
34
|
-
#
|
35
|
-
# @return [Symbol] the assignment operator
|
36
|
-
def operator; end
|
37
|
-
end
|
38
|
-
|
39
|
-
# A node extension for `until` nodes. This will be used in place of a plain
|
40
|
-
# node when the builder constructs the AST, making its methods available
|
41
|
-
# to all `until` nodes within RuboCop.
|
42
|
-
class RuboCop::AST::AndNode < ::RuboCop::AST::Node
|
43
|
-
include ::RuboCop::AST::BinaryOperatorNode
|
44
|
-
include ::RuboCop::AST::PredicateOperatorNode
|
45
|
-
|
46
|
-
# Returns the alternate operator of the `and` as a string.
|
47
|
-
# Returns `and` for `&&` and vice versa.
|
48
|
-
#
|
49
|
-
# @return [String] the alternate of the `and` operator
|
50
|
-
def alternate_operator; end
|
51
|
-
|
52
|
-
# Returns the inverse keyword of the `and` node as a string.
|
53
|
-
# Returns `||` for `&&` and `or` for `and`.
|
54
|
-
#
|
55
|
-
# @return [String] the inverse of the `and` operator
|
56
|
-
def inverse_operator; end
|
57
|
-
end
|
58
|
-
|
59
|
-
# A node extension for `arg`, `optarg`, `restarg`, `kwarg`, `kwoptarg`,
|
60
|
-
# `kwrestarg`, `blockarg`, `shadowarg` and `forward_arg` nodes.
|
61
|
-
# This will be used in place of a plain node when the builder constructs
|
62
|
-
# the AST, making its methods available to all `arg` nodes within RuboCop.
|
63
|
-
class RuboCop::AST::ArgNode < ::RuboCop::AST::Node
|
64
|
-
# Checks whether the argument has a default value
|
65
|
-
#
|
66
|
-
# @return [Boolean] whether the argument has a default value
|
67
|
-
def default?; end
|
68
|
-
|
69
|
-
# Returns the default value of the argument, if any.
|
70
|
-
#
|
71
|
-
# @return [Node, nil] the default value of the argument
|
72
|
-
def default_value; end
|
73
|
-
|
74
|
-
# Returns the name of an argument.
|
75
|
-
#
|
76
|
-
# @return [Symbol, nil] the name of the argument
|
77
|
-
def name; end
|
78
|
-
end
|
79
|
-
|
80
|
-
# A node extension for `args` nodes. This will be used in place of a plain
|
81
|
-
# node when the builder constructs the AST, making its methods available
|
82
|
-
# to all `args` nodes within RuboCop.
|
83
|
-
class RuboCop::AST::ArgsNode < ::RuboCop::AST::Node
|
84
|
-
include ::RuboCop::AST::CollectionNode
|
85
|
-
|
86
|
-
# Yield each argument from the collection.
|
87
|
-
# Arguments can be inside `mlhs` nodes in the case of destructuring, so this
|
88
|
-
# flattens the collection to just `arg`, `optarg`, `restarg`, `kwarg`,
|
89
|
-
# `kwoptarg`, `kwrestarg`, `blockarg`, `forward_arg` and `shadowarg`.
|
90
|
-
#
|
91
|
-
# @return [Array<Node>] array of argument nodes.
|
92
|
-
def argument_list; end
|
93
|
-
|
94
|
-
# It returns true if arguments are empty and delimiters do not exist.
|
95
|
-
# @example:
|
96
|
-
# # true
|
97
|
-
# def x; end
|
98
|
-
# x { }
|
99
|
-
# -> {}
|
100
|
-
#
|
101
|
-
# # false
|
102
|
-
# def x(); end
|
103
|
-
# def x a; end
|
104
|
-
# x { || }
|
105
|
-
# -> () {}
|
106
|
-
# -> a {}
|
107
|
-
#
|
108
|
-
# @return [Boolean]
|
109
|
-
def empty_and_without_delimiters?; end
|
110
|
-
end
|
111
|
-
|
112
|
-
# A node extension for `array` nodes. This will be used in place of a plain
|
113
|
-
# node when the builder constructs the AST, making its methods available
|
114
|
-
# to all `array` nodes within RuboCop.
|
115
|
-
class RuboCop::AST::ArrayNode < ::RuboCop::AST::Node
|
116
|
-
# Checks whether the `array` literal is delimited by either percent or
|
117
|
-
# square brackets
|
118
|
-
#
|
119
|
-
# brackets
|
120
|
-
#
|
121
|
-
# @return [Boolean] whether the array is enclosed in percent or square
|
122
|
-
def bracketed?; end
|
123
|
-
|
124
|
-
# @deprecated Use `values.each` (a.k.a. `children.each`)
|
125
|
-
def each_value(&block); end
|
126
|
-
|
127
|
-
# Checks whether the `array` literal is delimited by percent brackets.
|
128
|
-
#
|
129
|
-
# @overload percent_literal?
|
130
|
-
# @overload percent_literal?
|
131
|
-
# @return [Boolean] whether the array is enclosed in percent brackets
|
132
|
-
def percent_literal?(type = T.unsafe(nil)); end
|
133
|
-
|
134
|
-
# Checks whether the `array` literal is delimited by square brackets.
|
135
|
-
#
|
136
|
-
# @return [Boolean] whether the array is enclosed in square brackets
|
137
|
-
def square_brackets?; end
|
138
|
-
|
139
|
-
# Returns an array of all value nodes in the `array` literal.
|
140
|
-
#
|
141
|
-
# @return [Array<Node>] an array of value nodes
|
142
|
-
def values; end
|
143
|
-
end
|
144
|
-
|
145
|
-
RuboCop::AST::ArrayNode::PERCENT_LITERAL_TYPES = T.let(T.unsafe(nil), Hash)
|
146
|
-
|
147
|
-
# A node extension for `lvasgn`, `ivasgn`, `cvasgn`, and `gvasgn` nodes.
|
148
|
-
# This will be used in place of a plain node when the builder constructs
|
149
|
-
# the AST, making its methods available to all assignment nodes within RuboCop.
|
150
|
-
class RuboCop::AST::AsgnNode < ::RuboCop::AST::Node
|
151
|
-
# The expression being assigned to the variable.
|
152
|
-
#
|
153
|
-
# @return [Node] the expression being assigned.
|
154
|
-
def expression; end
|
155
|
-
|
156
|
-
# The name of the variable being assigned as a symbol.
|
157
|
-
#
|
158
|
-
# @return [Symbol] the name of the variable being assigned
|
159
|
-
def name; end
|
160
|
-
end
|
161
|
-
|
162
|
-
# Common functionality for primitive literal nodes: `sym`, `str`,
|
163
|
-
# `int`, `float`, ...
|
164
|
-
module RuboCop::AST::BasicLiteralNode
|
165
|
-
# Returns the value of the literal.
|
166
|
-
#
|
167
|
-
# @return [mixed] the value of the literal
|
168
|
-
def value; end
|
169
|
-
end
|
170
|
-
|
171
|
-
# Common functionality for nodes that are binary operations:
|
172
|
-
# `or`, `and` ...
|
173
|
-
module RuboCop::AST::BinaryOperatorNode
|
174
|
-
# Returns all of the conditions, including nested conditions,
|
175
|
-
# of the binary operation.
|
176
|
-
#
|
177
|
-
# operation and the let and right hand side of any nested binary
|
178
|
-
# operators
|
179
|
-
#
|
180
|
-
# @return [Array<Node>] the left and right hand side of the binary
|
181
|
-
def conditions; end
|
182
|
-
|
183
|
-
# Returns the left hand side node of the binary operation.
|
184
|
-
#
|
185
|
-
# @return [Node] the left hand side of the binary operation
|
186
|
-
def lhs; end
|
187
|
-
|
188
|
-
# Returns the right hand side node of the binary operation.
|
189
|
-
#
|
190
|
-
# @return [Node] the right hand side of the binary operation
|
191
|
-
def rhs; end
|
192
|
-
end
|
193
|
-
|
194
|
-
# A node extension for `block` nodes. This will be used in place of a plain
|
195
|
-
# node when the builder constructs the AST, making its methods available
|
196
|
-
# to all `send` nodes within RuboCop.
|
197
|
-
#
|
198
|
-
# A `block` node is essentially a method send with a block. Parser nests
|
199
|
-
# the `send` node inside the `block` node.
|
200
|
-
class RuboCop::AST::BlockNode < ::RuboCop::AST::Node
|
201
|
-
include ::RuboCop::AST::MethodIdentifierPredicates
|
202
|
-
|
203
|
-
# Returns a collection of all descendants of this node that are
|
204
|
-
# argument type nodes. See `ArgsNode#argument_list` for details.
|
205
|
-
#
|
206
|
-
# @return [Array<Node>]
|
207
|
-
def argument_list; end
|
208
|
-
|
209
|
-
# The arguments of this block.
|
210
|
-
# Note that if the block has destructured arguments, `arguments` will
|
211
|
-
# return a `mlhs` node, whereas `argument_list` will return only
|
212
|
-
# actual argument nodes.
|
213
|
-
#
|
214
|
-
# @return [Array<Node>]
|
215
|
-
def arguments; end
|
216
|
-
|
217
|
-
# Checks whether this block takes any arguments.
|
218
|
-
#
|
219
|
-
# @return [Boolean] whether this `block` node takes any arguments
|
220
|
-
def arguments?; end
|
221
|
-
|
222
|
-
# The body of this block.
|
223
|
-
#
|
224
|
-
# @return [Node, nil] the body of the `block` node or `nil`
|
225
|
-
def body; end
|
226
|
-
|
227
|
-
# Checks whether the `block` literal is delimited by curly braces.
|
228
|
-
#
|
229
|
-
# @return [Boolean] whether the `block` literal is enclosed in braces
|
230
|
-
def braces?; end
|
231
|
-
|
232
|
-
# The closing delimiter for this `block` literal.
|
233
|
-
#
|
234
|
-
# @return [String] the closing delimiter for the `block` literal
|
235
|
-
def closing_delimiter; end
|
236
|
-
|
237
|
-
# The delimiters for this `block` literal.
|
238
|
-
#
|
239
|
-
# @return [Array<String>] the delimiters for the `block` literal
|
240
|
-
def delimiters; end
|
241
|
-
|
242
|
-
# Checks whether the `block` literal is delimited by `do`-`end` keywords.
|
243
|
-
#
|
244
|
-
# @return [Boolean] whether the `block` literal is enclosed in `do`-`end`
|
245
|
-
def keywords?; end
|
246
|
-
|
247
|
-
# Checks whether this `block` literal belongs to a lambda.
|
248
|
-
#
|
249
|
-
# @return [Boolean] whether the `block` literal belongs to a lambda
|
250
|
-
def lambda?; end
|
251
|
-
|
252
|
-
# The name of the dispatched method as a symbol.
|
253
|
-
#
|
254
|
-
# @return [Symbol] the name of the dispatched method
|
255
|
-
def method_name; end
|
256
|
-
|
257
|
-
# Checks whether this is a multiline block. This is overridden here
|
258
|
-
# because the general version in `Node` does not work for `block` nodes.
|
259
|
-
#
|
260
|
-
# @return [Boolean] whether the `block` literal is on a several lines
|
261
|
-
def multiline?; end
|
262
|
-
|
263
|
-
# The opening delimiter for this `block` literal.
|
264
|
-
#
|
265
|
-
# @return [String] the opening delimiter for the `block` literal
|
266
|
-
def opening_delimiter; end
|
267
|
-
|
268
|
-
# The `send` node associated with this block.
|
269
|
-
#
|
270
|
-
# @return [SendNode] the `send` node associated with the `block` node
|
271
|
-
def send_node; end
|
272
|
-
|
273
|
-
# Checks whether this is a single line block. This is overridden here
|
274
|
-
# because the general version in `Node` does not work for `block` nodes.
|
275
|
-
#
|
276
|
-
# @return [Boolean] whether the `block` literal is on a single line
|
277
|
-
def single_line?; end
|
278
|
-
|
279
|
-
# Checks whether this node body is a void context.
|
280
|
-
#
|
281
|
-
# @return [Boolean] whether the `block` node body is a void context
|
282
|
-
def void_context?; end
|
283
|
-
|
284
|
-
private
|
285
|
-
|
286
|
-
# Numbered arguments of this `numblock`.
|
287
|
-
def numbered_arguments; end
|
288
|
-
end
|
289
|
-
|
290
|
-
RuboCop::AST::BlockNode::VOID_CONTEXT_METHODS = T.let(T.unsafe(nil), Array)
|
291
|
-
|
292
|
-
# A node extension for `break` nodes. This will be used in place of a
|
293
|
-
# plain node when the builder constructs the AST, making its methods
|
294
|
-
# available to all `break` nodes within RuboCop.
|
295
|
-
class RuboCop::AST::BreakNode < ::RuboCop::AST::Node
|
296
|
-
include ::RuboCop::AST::ParameterizedNode
|
297
|
-
include ::RuboCop::AST::ParameterizedNode::WrappedArguments
|
298
|
-
end
|
299
|
-
|
300
|
-
# `RuboCop::AST::Builder` is an AST builder that is utilized to let `Parser`
|
301
|
-
# generate ASTs with {RuboCop::AST::Node}.
|
302
|
-
#
|
303
|
-
# @example
|
304
|
-
# buffer = Parser::Source::Buffer.new('(string)')
|
305
|
-
# buffer.source = 'puts :foo'
|
306
|
-
#
|
307
|
-
# builder = RuboCop::AST::Builder.new
|
308
|
-
# require 'parser/ruby25'
|
309
|
-
# parser = Parser::Ruby25.new(builder)
|
310
|
-
# root_node = parser.parse(buffer)
|
311
|
-
class RuboCop::AST::Builder < ::Parser::Builders::Default
|
312
|
-
# Generates {Node} from the given information.
|
313
|
-
#
|
314
|
-
# @return [Node] the generated node
|
315
|
-
def n(type, children, source_map); end
|
316
|
-
|
317
|
-
# TODO: Figure out what to do about literal encoding handling...
|
318
|
-
# More details here https://github.com/whitequark/parser/issues/283
|
319
|
-
def string_value(token); end
|
320
|
-
|
321
|
-
private
|
322
|
-
|
323
|
-
def node_klass(type); end
|
324
|
-
end
|
325
|
-
|
326
|
-
# @api private
|
327
|
-
RuboCop::AST::Builder::NODE_MAP = T.let(T.unsafe(nil), Hash)
|
328
|
-
|
329
|
-
# A node extension for `case_match` nodes. This will be used in place of
|
330
|
-
# a plain node when the builder constructs the AST, making its methods
|
331
|
-
# available to all `case_match` nodes within RuboCop.
|
332
|
-
class RuboCop::AST::CaseMatchNode < ::RuboCop::AST::Node
|
333
|
-
include ::RuboCop::AST::ConditionalNode
|
334
|
-
|
335
|
-
# Returns an array of all the when branches in the `case` statement.
|
336
|
-
#
|
337
|
-
# and the `else` (if any). Note that these bodies could be nil.
|
338
|
-
#
|
339
|
-
# @return [Array<Node, nil>] an array of the bodies of the `in` branches
|
340
|
-
def branches; end
|
341
|
-
|
342
|
-
# @deprecated Use `in_pattern_branches.each`
|
343
|
-
def each_in_pattern(&block); end
|
344
|
-
|
345
|
-
# Checks whether this case statement has an `else` branch.
|
346
|
-
#
|
347
|
-
# @return [Boolean] whether the `case` statement has an `else` branch
|
348
|
-
def else?; end
|
349
|
-
|
350
|
-
# Returns the else branch of the `case` statement, if any.
|
351
|
-
#
|
352
|
-
# @return [Node] the else branch node of the `case` statement
|
353
|
-
# @return [EmptyElse] the empty else branch node of the `case` statement
|
354
|
-
# @return [nil] if the case statement does not have an else branch.
|
355
|
-
def else_branch; end
|
356
|
-
|
357
|
-
# Returns an array of all the `in` pattern branches in the `case` statement.
|
358
|
-
#
|
359
|
-
# @return [Array<InPatternNode>] an array of `in_pattern` nodes
|
360
|
-
def in_pattern_branches; end
|
361
|
-
|
362
|
-
# Returns the keyword of the `case` statement as a string.
|
363
|
-
#
|
364
|
-
# @return [String] the keyword of the `case` statement
|
365
|
-
def keyword; end
|
366
|
-
end
|
367
|
-
|
368
|
-
# A node extension for `case` nodes. This will be used in place of a plain
|
369
|
-
# node when the builder constructs the AST, making its methods available
|
370
|
-
# to all `case` nodes within RuboCop.
|
371
|
-
class RuboCop::AST::CaseNode < ::RuboCop::AST::Node
|
372
|
-
include ::RuboCop::AST::ConditionalNode
|
373
|
-
|
374
|
-
# Returns an array of all the when branches in the `case` statement.
|
375
|
-
#
|
376
|
-
# and the else (if any). Note that these bodies could be nil.
|
377
|
-
#
|
378
|
-
# @return [Array<Node, nil>] an array of the bodies of the when branches
|
379
|
-
def branches; end
|
380
|
-
|
381
|
-
# @deprecated Use `when_branches.each`
|
382
|
-
def each_when(&block); end
|
383
|
-
|
384
|
-
# Checks whether this case statement has an `else` branch.
|
385
|
-
#
|
386
|
-
# @return [Boolean] whether the `case` statement has an `else` branch
|
387
|
-
def else?; end
|
388
|
-
|
389
|
-
# Returns the else branch of the `case` statement, if any.
|
390
|
-
#
|
391
|
-
# @return [Node] the else branch node of the `case` statement
|
392
|
-
# @return [nil] if the case statement does not have an else branch.
|
393
|
-
def else_branch; end
|
394
|
-
|
395
|
-
# Returns the keyword of the `case` statement as a string.
|
396
|
-
#
|
397
|
-
# @return [String] the keyword of the `case` statement
|
398
|
-
def keyword; end
|
399
|
-
|
400
|
-
# Returns an array of all the when branches in the `case` statement.
|
401
|
-
#
|
402
|
-
# @return [Array<WhenNode>] an array of `when` nodes
|
403
|
-
def when_branches; end
|
404
|
-
end
|
405
|
-
|
406
|
-
# A node extension for `casgn` nodes.
|
407
|
-
# This will be used in place of a plain node when the builder constructs
|
408
|
-
# the AST, making its methods available to all assignment nodes within RuboCop.
|
409
|
-
class RuboCop::AST::CasgnNode < ::RuboCop::AST::Node
|
410
|
-
# The expression being assigned to the variable.
|
411
|
-
#
|
412
|
-
# @return [Node] the expression being assigned.
|
413
|
-
def expression; end
|
414
|
-
|
415
|
-
# The name of the variable being assigned as a symbol.
|
416
|
-
#
|
417
|
-
# @return [Symbol] the name of the variable being assigned
|
418
|
-
def name; end
|
419
|
-
|
420
|
-
# The namespace of the constant being assigned.
|
421
|
-
#
|
422
|
-
# @return [Node, nil] the node associated with the scope (e.g. cbase, const, ...)
|
423
|
-
def namespace; end
|
424
|
-
end
|
425
|
-
|
426
|
-
# A node extension for `class` nodes. This will be used in place of a plain
|
427
|
-
# node when the builder constructs the AST, making its methods available
|
428
|
-
# to all `class` nodes within RuboCop.
|
429
|
-
class RuboCop::AST::ClassNode < ::RuboCop::AST::Node
|
430
|
-
# The body of this `class` node.
|
431
|
-
#
|
432
|
-
# @return [Node, nil] the body of the class
|
433
|
-
def body; end
|
434
|
-
|
435
|
-
# The identifier for this `class` node.
|
436
|
-
#
|
437
|
-
# @return [Node] the identifier of the class
|
438
|
-
def identifier; end
|
439
|
-
|
440
|
-
# The parent class for this `class` node.
|
441
|
-
#
|
442
|
-
# @return [Node, nil] the parent class of the class
|
443
|
-
def parent_class; end
|
444
|
-
end
|
445
|
-
|
446
|
-
# A mixin that helps give collection nodes array polymorphism.
|
447
|
-
module RuboCop::AST::CollectionNode
|
448
|
-
extend ::Forwardable
|
449
|
-
|
450
|
-
def &(*args, **_arg1, &block); end
|
451
|
-
def *(*args, **_arg1, &block); end
|
452
|
-
def +(*args, **_arg1, &block); end
|
453
|
-
def -(*args, **_arg1, &block); end
|
454
|
-
def <<(*args, **_arg1, &block); end
|
455
|
-
def [](*args, **_arg1, &block); end
|
456
|
-
def []=(*args, **_arg1, &block); end
|
457
|
-
def all?(*args, **_arg1, &block); end
|
458
|
-
def any?(*args, **_arg1, &block); end
|
459
|
-
def append(*args, **_arg1, &block); end
|
460
|
-
def assoc(*args, **_arg1, &block); end
|
461
|
-
def at(*args, **_arg1, &block); end
|
462
|
-
def bsearch(*args, **_arg1, &block); end
|
463
|
-
def bsearch_index(*args, **_arg1, &block); end
|
464
|
-
def chain(*args, **_arg1, &block); end
|
465
|
-
def chunk(*args, **_arg1, &block); end
|
466
|
-
def chunk_while(*args, **_arg1, &block); end
|
467
|
-
def clear(*args, **_arg1, &block); end
|
468
|
-
def collect(*args, **_arg1, &block); end
|
469
|
-
def collect!(*args, **_arg1, &block); end
|
470
|
-
def collect_concat(*args, **_arg1, &block); end
|
471
|
-
def combination(*args, **_arg1, &block); end
|
472
|
-
def compact(*args, **_arg1, &block); end
|
473
|
-
def compact!(*args, **_arg1, &block); end
|
474
|
-
def concat(*args, **_arg1, &block); end
|
475
|
-
def count(*args, **_arg1, &block); end
|
476
|
-
def cycle(*args, **_arg1, &block); end
|
477
|
-
def deconstruct(*args, **_arg1, &block); end
|
478
|
-
def delete(*args, **_arg1, &block); end
|
479
|
-
def delete_at(*args, **_arg1, &block); end
|
480
|
-
def delete_if(*args, **_arg1, &block); end
|
481
|
-
def detect(*args, **_arg1, &block); end
|
482
|
-
def difference(*args, **_arg1, &block); end
|
483
|
-
def dig(*args, **_arg1, &block); end
|
484
|
-
def drop(*args, **_arg1, &block); end
|
485
|
-
def drop_while(*args, **_arg1, &block); end
|
486
|
-
def each(*args, **_arg1, &block); end
|
487
|
-
def each_cons(*args, **_arg1, &block); end
|
488
|
-
def each_entry(*args, **_arg1, &block); end
|
489
|
-
def each_index(*args, **_arg1, &block); end
|
490
|
-
def each_slice(*args, **_arg1, &block); end
|
491
|
-
def each_with_index(*args, **_arg1, &block); end
|
492
|
-
def each_with_object(*args, **_arg1, &block); end
|
493
|
-
def empty?(*args, **_arg1, &block); end
|
494
|
-
def entries(*args, **_arg1, &block); end
|
495
|
-
def fetch(*args, **_arg1, &block); end
|
496
|
-
def fill(*args, **_arg1, &block); end
|
497
|
-
def filter(*args, **_arg1, &block); end
|
498
|
-
def filter!(*args, **_arg1, &block); end
|
499
|
-
def filter_map(*args, **_arg1, &block); end
|
500
|
-
def find(*args, **_arg1, &block); end
|
501
|
-
def find_all(*args, **_arg1, &block); end
|
502
|
-
def find_index(*args, **_arg1, &block); end
|
503
|
-
def first(*args, **_arg1, &block); end
|
504
|
-
def flat_map(*args, **_arg1, &block); end
|
505
|
-
def flatten(*args, **_arg1, &block); end
|
506
|
-
def flatten!(*args, **_arg1, &block); end
|
507
|
-
def grep(*args, **_arg1, &block); end
|
508
|
-
def grep_v(*args, **_arg1, &block); end
|
509
|
-
def group_by(*args, **_arg1, &block); end
|
510
|
-
def include?(*args, **_arg1, &block); end
|
511
|
-
def index(*args, **_arg1, &block); end
|
512
|
-
def inject(*args, **_arg1, &block); end
|
513
|
-
def insert(*args, **_arg1, &block); end
|
514
|
-
def intersect?(*args, **_arg1, &block); end
|
515
|
-
def intersection(*args, **_arg1, &block); end
|
516
|
-
def join(*args, **_arg1, &block); end
|
517
|
-
def keep_if(*args, **_arg1, &block); end
|
518
|
-
def last(*args, **_arg1, &block); end
|
519
|
-
def lazy(*args, **_arg1, &block); end
|
520
|
-
def length(*args, **_arg1, &block); end
|
521
|
-
def map(*args, **_arg1, &block); end
|
522
|
-
def map!(*args, **_arg1, &block); end
|
523
|
-
def max(*args, **_arg1, &block); end
|
524
|
-
def max_by(*args, **_arg1, &block); end
|
525
|
-
def member?(*args, **_arg1, &block); end
|
526
|
-
def min(*args, **_arg1, &block); end
|
527
|
-
def min_by(*args, **_arg1, &block); end
|
528
|
-
def minmax(*args, **_arg1, &block); end
|
529
|
-
def minmax_by(*args, **_arg1, &block); end
|
530
|
-
def none?(*args, **_arg1, &block); end
|
531
|
-
def one?(*args, **_arg1, &block); end
|
532
|
-
def pack(*args, **_arg1, &block); end
|
533
|
-
def partition(*args, **_arg1, &block); end
|
534
|
-
def permutation(*args, **_arg1, &block); end
|
535
|
-
def place(*args, **_arg1, &block); end
|
536
|
-
def pop(*args, **_arg1, &block); end
|
537
|
-
def prepend(*args, **_arg1, &block); end
|
538
|
-
def product(*args, **_arg1, &block); end
|
539
|
-
def push(*args, **_arg1, &block); end
|
540
|
-
def rassoc(*args, **_arg1, &block); end
|
541
|
-
def reduce(*args, **_arg1, &block); end
|
542
|
-
def reject(*args, **_arg1, &block); end
|
543
|
-
def reject!(*args, **_arg1, &block); end
|
544
|
-
def repeated_combination(*args, **_arg1, &block); end
|
545
|
-
def repeated_permutation(*args, **_arg1, &block); end
|
546
|
-
def replace(*args, **_arg1, &block); end
|
547
|
-
def reverse(*args, **_arg1, &block); end
|
548
|
-
def reverse!(*args, **_arg1, &block); end
|
549
|
-
def reverse_each(*args, **_arg1, &block); end
|
550
|
-
def rindex(*args, **_arg1, &block); end
|
551
|
-
def rotate(*args, **_arg1, &block); end
|
552
|
-
def rotate!(*args, **_arg1, &block); end
|
553
|
-
def sample(*args, **_arg1, &block); end
|
554
|
-
def select(*args, **_arg1, &block); end
|
555
|
-
def select!(*args, **_arg1, &block); end
|
556
|
-
def shelljoin(*args, **_arg1, &block); end
|
557
|
-
def shift(*args, **_arg1, &block); end
|
558
|
-
def shuffle(*args, **_arg1, &block); end
|
559
|
-
def shuffle!(*args, **_arg1, &block); end
|
560
|
-
def size(*args, **_arg1, &block); end
|
561
|
-
def slice(*args, **_arg1, &block); end
|
562
|
-
def slice!(*args, **_arg1, &block); end
|
563
|
-
def slice_after(*args, **_arg1, &block); end
|
564
|
-
def slice_before(*args, **_arg1, &block); end
|
565
|
-
def slice_when(*args, **_arg1, &block); end
|
566
|
-
def sort(*args, **_arg1, &block); end
|
567
|
-
def sort!(*args, **_arg1, &block); end
|
568
|
-
def sort_by(*args, **_arg1, &block); end
|
569
|
-
def sort_by!(*args, **_arg1, &block); end
|
570
|
-
def sum(*args, **_arg1, &block); end
|
571
|
-
def take(*args, **_arg1, &block); end
|
572
|
-
def take_while(*args, **_arg1, &block); end
|
573
|
-
def tally(*args, **_arg1, &block); end
|
574
|
-
def to_ary(*args, **_arg1, &block); end
|
575
|
-
def to_h(*args, **_arg1, &block); end
|
576
|
-
def to_set(*args, **_arg1, &block); end
|
577
|
-
def transpose(*args, **_arg1, &block); end
|
578
|
-
def union(*args, **_arg1, &block); end
|
579
|
-
def uniq(*args, **_arg1, &block); end
|
580
|
-
def uniq!(*args, **_arg1, &block); end
|
581
|
-
def unshift(*args, **_arg1, &block); end
|
582
|
-
def values_at(*args, **_arg1, &block); end
|
583
|
-
def zip(*args, **_arg1, &block); end
|
584
|
-
def |(*args, **_arg1, &block); end
|
585
|
-
end
|
586
|
-
|
587
|
-
RuboCop::AST::CollectionNode::ARRAY_METHODS = T.let(T.unsafe(nil), Array)
|
588
|
-
|
589
|
-
# Common functionality for nodes that have conditions:
|
590
|
-
# `if`, `while`, `until`, `case`.
|
591
|
-
# This currently doesn't include `when` nodes, because they have multiple
|
592
|
-
# conditions, and need to be checked for that.
|
593
|
-
module RuboCop::AST::ConditionalNode
|
594
|
-
# Returns the body associated with the condition. This works together with
|
595
|
-
# each node's custom destructuring method to select the correct part of
|
596
|
-
# the node.
|
597
|
-
#
|
598
|
-
# @note For `if` nodes, this is the truthy branch.
|
599
|
-
# @return [Node, nil] the body of the node
|
600
|
-
def body; end
|
601
|
-
|
602
|
-
# Returns the condition of the node. This works together with each node's
|
603
|
-
# custom destructuring method to select the correct part of the node.
|
604
|
-
#
|
605
|
-
# @return [Node, nil] the condition of the node
|
606
|
-
def condition; end
|
607
|
-
|
608
|
-
# Checks whether the condition of the node is written on more than
|
609
|
-
# one line.
|
610
|
-
#
|
611
|
-
# @return [Boolean] whether the condition is on more than one line
|
612
|
-
def multiline_condition?; end
|
613
|
-
|
614
|
-
# Checks whether the condition of the node is written on a single line.
|
615
|
-
#
|
616
|
-
# @return [Boolean] whether the condition is on a single line
|
617
|
-
def single_line_condition?; end
|
618
|
-
end
|
619
|
-
|
620
|
-
# A node extension for `const` nodes.
|
621
|
-
class RuboCop::AST::ConstNode < ::RuboCop::AST::Node
|
622
|
-
# @return [Boolean] if the constant starts with `::` (aka s(:cbase))
|
623
|
-
def absolute?; end
|
624
|
-
|
625
|
-
# @return [Boolean] if the constant is a Module / Class, according to the standard convention.
|
626
|
-
# Note: some classes might have uppercase in which case this method
|
627
|
-
# returns false
|
628
|
-
def class_name?; end
|
629
|
-
|
630
|
-
# Yield nodes for the namespace
|
631
|
-
#
|
632
|
-
# For `::Foo::Bar::BAZ` => yields:
|
633
|
-
# s(:cbase), then
|
634
|
-
# s(:const, :Foo), then
|
635
|
-
# s(:const, s(:const, :Foo), :Bar)
|
636
|
-
def each_path(&block); end
|
637
|
-
|
638
|
-
# @return [Boolean] if the constant is a Module / Class, according to the standard convention.
|
639
|
-
# Note: some classes might have uppercase in which case this method
|
640
|
-
# returns false
|
641
|
-
def module_name?; end
|
642
|
-
|
643
|
-
# @return [Node, nil] the node associated with the scope (e.g. cbase, const, ...)
|
644
|
-
def namespace; end
|
645
|
-
|
646
|
-
# @return [Boolean] if the constant does not start with `::` (aka s(:cbase))
|
647
|
-
def relative?; end
|
648
|
-
|
649
|
-
# @return [Symbol] the demodulized name of the constant: "::Foo::Bar" => :Bar
|
650
|
-
def short_name; end
|
651
|
-
end
|
652
|
-
|
653
|
-
# A node extension for `def` nodes. This will be used in place of a plain
|
654
|
-
# node when the builder constructs the AST, making its methods available
|
655
|
-
# to all `def` nodes within RuboCop.
|
656
|
-
class RuboCop::AST::DefNode < ::RuboCop::AST::Node
|
657
|
-
include ::RuboCop::AST::ParameterizedNode
|
658
|
-
include ::RuboCop::AST::MethodIdentifierPredicates
|
659
|
-
|
660
|
-
# Checks whether this method definition node forwards its arguments
|
661
|
-
# as per the feature added in Ruby 2.7.
|
662
|
-
#
|
663
|
-
# @note This is written in a way that may support lead arguments
|
664
|
-
# which are rumored to be added in a later version of Ruby.
|
665
|
-
# @return [Boolean] whether the `def` node uses argument forwarding
|
666
|
-
def argument_forwarding?; end
|
667
|
-
|
668
|
-
# An array containing the arguments of the method definition.
|
669
|
-
#
|
670
|
-
# @return [Array<Node>] the arguments of the method definition
|
671
|
-
def arguments; end
|
672
|
-
|
673
|
-
# The body of the method definition.
|
674
|
-
#
|
675
|
-
# @note this can be either a `begin` node, if the method body contains
|
676
|
-
# multiple expressions, or any other node, if it contains a single
|
677
|
-
# expression.
|
678
|
-
# @return [Node] the body of the method definition
|
679
|
-
def body; end
|
680
|
-
|
681
|
-
# @return [Boolean] if the definition is without an `end` or not.
|
682
|
-
def endless?; end
|
683
|
-
|
684
|
-
# The name of the defined method as a symbol.
|
685
|
-
#
|
686
|
-
# @return [Symbol] the name of the defined method
|
687
|
-
def method_name; end
|
688
|
-
|
689
|
-
# The receiver of the method definition, if any.
|
690
|
-
#
|
691
|
-
# @return [Node, nil] the receiver of the method definition, or `nil`.
|
692
|
-
def receiver; end
|
693
|
-
|
694
|
-
# Checks whether this node body is a void context.
|
695
|
-
#
|
696
|
-
# @return [Boolean] whether the `def` node body is a void context
|
697
|
-
def void_context?; end
|
698
|
-
end
|
699
|
-
|
700
|
-
# A node extension for `defined?` nodes. This will be used in place of a
|
701
|
-
# plain node when the builder constructs the AST, making its methods
|
702
|
-
# available to all `send` nodes within RuboCop.
|
703
|
-
class RuboCop::AST::DefinedNode < ::RuboCop::AST::Node
|
704
|
-
include ::RuboCop::AST::ParameterizedNode
|
705
|
-
include ::RuboCop::AST::MethodIdentifierPredicates
|
706
|
-
include ::RuboCop::AST::MethodDispatchNode
|
707
|
-
|
708
|
-
def arguments; end
|
709
|
-
def node_parts; end
|
710
|
-
end
|
711
|
-
|
712
|
-
# Common functionality for primitive literal nodes: `sym`, `str`,
|
713
|
-
# `int`, `float`, ...
|
714
|
-
module RuboCop::AST::Descendence
|
715
|
-
# Returns an array of child nodes.
|
716
|
-
# This is a shorthand for `node.each_child_node.to_a`.
|
717
|
-
#
|
718
|
-
# @return [Array<Node>] an array of child nodes
|
719
|
-
def child_nodes; end
|
720
|
-
|
721
|
-
# Returns an array of descendant nodes.
|
722
|
-
# This is a shorthand for `node.each_descendant.to_a`.
|
723
|
-
#
|
724
|
-
# @return [Array<Node>] an array of descendant nodes
|
725
|
-
def descendants; end
|
726
|
-
|
727
|
-
# Calls the given block for each child node.
|
728
|
-
# If no block is given, an `Enumerator` is returned.
|
729
|
-
#
|
730
|
-
# Note that this is different from `node.children.each { |child| ... }`
|
731
|
-
# which yields all children including non-node elements.
|
732
|
-
#
|
733
|
-
# @overload each_child_node
|
734
|
-
# @overload each_child_node
|
735
|
-
# @return [self] if a block is given
|
736
|
-
# @return [Enumerator] if no block is given
|
737
|
-
# @yieldparam node [Node] each child node
|
738
|
-
def each_child_node(*types); end
|
739
|
-
|
740
|
-
# Calls the given block for each descendant node with depth first order.
|
741
|
-
# If no block is given, an `Enumerator` is returned.
|
742
|
-
#
|
743
|
-
# @overload each_descendant
|
744
|
-
# @overload each_descendant
|
745
|
-
# @overload each_descendant
|
746
|
-
# @return [self] if a block is given
|
747
|
-
# @return [Enumerator] if no block is given
|
748
|
-
# @yieldparam node [Node] each descendant node
|
749
|
-
def each_descendant(*types, &block); end
|
750
|
-
|
751
|
-
# Calls the given block for the receiver and each descendant node in
|
752
|
-
# depth-first order.
|
753
|
-
# If no block is given, an `Enumerator` is returned.
|
754
|
-
#
|
755
|
-
# This method would be useful when you treat the receiver node as the root
|
756
|
-
# of a tree and want to iterate over all nodes in the tree.
|
757
|
-
#
|
758
|
-
# @overload each_node
|
759
|
-
# @overload each_node
|
760
|
-
# @overload each_node
|
761
|
-
# @return [self] if a block is given
|
762
|
-
# @return [Enumerator] if no block is given
|
763
|
-
# @yieldparam node [Node] each node
|
764
|
-
def each_node(*types, &block); end
|
765
|
-
|
766
|
-
protected
|
767
|
-
|
768
|
-
def visit_descendants(types, &block); end
|
769
|
-
end
|
770
|
-
|
771
|
-
# A node extension for `dstr` nodes. This will be used
|
772
|
-
# in place of a plain node when the builder constructs the AST, making
|
773
|
-
# its methods available to all `dstr` nodes within RuboCop.
|
774
|
-
class RuboCop::AST::DstrNode < ::RuboCop::AST::StrNode
|
775
|
-
def value; end
|
776
|
-
end
|
777
|
-
|
778
|
-
# A node extension for `ensure` nodes. This will be used in place of a plain
|
779
|
-
# node when the builder constructs the AST, making its methods available
|
780
|
-
# to all `ensure` nodes within RuboCop.
|
781
|
-
class RuboCop::AST::EnsureNode < ::RuboCop::AST::Node
|
782
|
-
# Returns the body of the `ensure` clause.
|
783
|
-
#
|
784
|
-
# @return [Node, nil] The body of the `ensure`.
|
785
|
-
def body; end
|
786
|
-
end
|
787
|
-
|
788
|
-
module RuboCop::AST::Ext; end
|
789
|
-
|
790
|
-
# Extensions to Parser::AST::Range
|
791
|
-
module RuboCop::AST::Ext::Range
|
792
|
-
# If `exclude_end` is `true`, then the range will be exclusive.
|
793
|
-
#
|
794
|
-
# Assume that `node` corresponds to the following array literal:
|
795
|
-
#
|
796
|
-
# [
|
797
|
-
# :foo,
|
798
|
-
# :bar
|
799
|
-
# ]
|
800
|
-
#
|
801
|
-
# node.loc.begin.line_span # => 1..1
|
802
|
-
# node.loc.expression.line_span(exclude_end: true) # => 1...4
|
803
|
-
#
|
804
|
-
# @return [Range] the range of line numbers for the node
|
805
|
-
def line_span(exclude_end: T.unsafe(nil)); end
|
806
|
-
end
|
807
|
-
|
808
|
-
# Refinement to circumvent broken `Range#minmax` for infinity ranges in 2.6-
|
809
|
-
module RuboCop::AST::Ext::RangeMinMax; end
|
810
|
-
|
811
|
-
# A node extension for `float` nodes. This will be used in place of a plain
|
812
|
-
# node when the builder constructs the AST, making its methods available to
|
813
|
-
# all `float` nodes within RuboCop.
|
814
|
-
class RuboCop::AST::FloatNode < ::RuboCop::AST::Node
|
815
|
-
include ::RuboCop::AST::BasicLiteralNode
|
816
|
-
include ::RuboCop::AST::NumericNode
|
817
|
-
end
|
818
|
-
|
819
|
-
# A node extension for `for` nodes. This will be used in place of a plain
|
820
|
-
# node when the builder constructs the AST, making its methods available
|
821
|
-
# to all `for` nodes within RuboCop.
|
822
|
-
class RuboCop::AST::ForNode < ::RuboCop::AST::Node
|
823
|
-
# Returns the body of the `for` loop.
|
824
|
-
#
|
825
|
-
# @return [Node, nil] The body of the `for` loop.
|
826
|
-
def body; end
|
827
|
-
|
828
|
-
# Returns the collection the `for` loop is iterating over.
|
829
|
-
#
|
830
|
-
# @return [Node] The collection the `for` loop is iterating over
|
831
|
-
def collection; end
|
832
|
-
|
833
|
-
# Checks whether the `for` node has a `do` keyword.
|
834
|
-
#
|
835
|
-
# @return [Boolean] whether the `for` node has a `do` keyword
|
836
|
-
def do?; end
|
837
|
-
|
838
|
-
# Returns the keyword of the `for` statement as a string.
|
839
|
-
#
|
840
|
-
# @return [String] the keyword of the `until` statement
|
841
|
-
def keyword; end
|
842
|
-
|
843
|
-
# Returns the iteration variable of the `for` loop.
|
844
|
-
#
|
845
|
-
# @return [Node] The iteration variable of the `for` loop
|
846
|
-
def variable; end
|
847
|
-
|
848
|
-
# Checks whether this node body is a void context.
|
849
|
-
# Always `true` for `for`.
|
850
|
-
#
|
851
|
-
# @return [true] whether the `for` node body is a void context
|
852
|
-
def void_context?; end
|
853
|
-
end
|
854
|
-
|
855
|
-
# A node extension for `forward-args` nodes. This will be used in place
|
856
|
-
# of a plain node when the builder constructs the AST, making its methods
|
857
|
-
# available to all `forward-args` nodes within RuboCop.
|
858
|
-
#
|
859
|
-
# Not used with modern emitters:
|
860
|
-
#
|
861
|
-
# $ ruby-parse -e "def foo(...); end"
|
862
|
-
# (def :foo
|
863
|
-
# (args
|
864
|
-
# (forward-arg)) nil)
|
865
|
-
# $ ruby-parse --legacy -e "->(foo) { bar }"
|
866
|
-
# (def :foo
|
867
|
-
# (forward-args) nil)
|
868
|
-
#
|
869
|
-
# Note the extra 's' with legacy form.
|
870
|
-
#
|
871
|
-
# The main RuboCop runs in legacy mode; this node is only used
|
872
|
-
# if user `AST::Builder.modernize` or `AST::Builder.emit_lambda=true`
|
873
|
-
class RuboCop::AST::ForwardArgsNode < ::RuboCop::AST::Node
|
874
|
-
include ::RuboCop::AST::CollectionNode
|
875
|
-
|
876
|
-
# Node wraps itself in an array to be compatible with other
|
877
|
-
# enumerable argument types.
|
878
|
-
def to_a; end
|
879
|
-
end
|
880
|
-
|
881
|
-
# Common functionality for nodes that can be used as hash elements:
|
882
|
-
# `pair`, `kwsplat`
|
883
|
-
module RuboCop::AST::HashElementNode
|
884
|
-
# Returns the delta between this element's delimiter and the argument's.
|
885
|
-
#
|
886
|
-
# @note Pairs with different delimiter styles return a delta of 0
|
887
|
-
# @return [Integer] the delta between the two delimiters
|
888
|
-
def delimiter_delta(other); end
|
889
|
-
|
890
|
-
# Returns the key of this `hash` element.
|
891
|
-
#
|
892
|
-
# @note For keyword splats, this returns the whole node
|
893
|
-
# @return [Node] the key of the hash element
|
894
|
-
def key; end
|
895
|
-
|
896
|
-
# Returns the delta between this pair's key and the argument pair's.
|
897
|
-
#
|
898
|
-
# @note Keys on the same line always return a delta of 0
|
899
|
-
# @note Keyword splats always return a delta of 0 for right alignment
|
900
|
-
# @param alignment [Symbol] whether to check the left or right side
|
901
|
-
# @return [Integer] the delta between the two keys
|
902
|
-
def key_delta(other, alignment = T.unsafe(nil)); end
|
903
|
-
|
904
|
-
# Checks whether this `hash` element is on the same line as `other`.
|
905
|
-
#
|
906
|
-
# @note A multiline element is considered to be on the same line if it
|
907
|
-
# shares any of its lines with `other`
|
908
|
-
# @return [Boolean] whether this element is on the same line as `other`
|
909
|
-
def same_line?(other); end
|
910
|
-
|
911
|
-
# Returns the value of this `hash` element.
|
912
|
-
#
|
913
|
-
# @note For keyword splats, this returns the whole node
|
914
|
-
# @return [Node] the value of the hash element
|
915
|
-
def value; end
|
916
|
-
|
917
|
-
# Returns the delta between this element's value and the argument's.
|
918
|
-
#
|
919
|
-
# @note Keyword splats always return a delta of 0
|
920
|
-
# @return [Integer] the delta between the two values
|
921
|
-
def value_delta(other); end
|
922
|
-
end
|
923
|
-
|
924
|
-
# A helper class for comparing the positions of different parts of a
|
925
|
-
# `pair` node.
|
926
|
-
class RuboCop::AST::HashElementNode::HashElementDelta
|
927
|
-
# @raise [ArgumentError]
|
928
|
-
# @return [HashElementDelta] a new instance of HashElementDelta
|
929
|
-
def initialize(first, second); end
|
930
|
-
|
931
|
-
def delimiter_delta; end
|
932
|
-
def key_delta(alignment = T.unsafe(nil)); end
|
933
|
-
def value_delta; end
|
934
|
-
|
935
|
-
private
|
936
|
-
|
937
|
-
def delta(first, second, alignment = T.unsafe(nil)); end
|
938
|
-
|
939
|
-
# Returns the value of attribute first.
|
940
|
-
def first; end
|
941
|
-
|
942
|
-
# @return [Boolean]
|
943
|
-
def keyword_splat?; end
|
944
|
-
|
945
|
-
# Returns the value of attribute second.
|
946
|
-
def second; end
|
947
|
-
|
948
|
-
# @return [Boolean]
|
949
|
-
def valid_argument_types?; end
|
950
|
-
end
|
951
|
-
|
952
|
-
# A node extension for `hash` nodes. This will be used in place of a plain
|
953
|
-
# node when the builder constructs the AST, making its methods available
|
954
|
-
# to all `hash` nodes within RuboCop.
|
955
|
-
class RuboCop::AST::HashNode < ::RuboCop::AST::Node
|
956
|
-
# Checks whether the `hash` literal is delimited by curly braces.
|
957
|
-
#
|
958
|
-
# @return [Boolean] whether the `hash` literal is enclosed in braces
|
959
|
-
def braces?; end
|
960
|
-
|
961
|
-
# Calls the given block for each `key` node in the `hash` literal.
|
962
|
-
# If no block is given, an `Enumerator` is returned.
|
963
|
-
#
|
964
|
-
# @note `kwsplat` nodes are ignored.
|
965
|
-
# @return [self] if a block is given
|
966
|
-
# @return [Enumerator] if no block is given
|
967
|
-
def each_key(&block); end
|
968
|
-
|
969
|
-
# Calls the given block for each `pair` node in the `hash` literal.
|
970
|
-
# If no block is given, an `Enumerator` is returned.
|
971
|
-
#
|
972
|
-
# @note `kwsplat` nodes are ignored.
|
973
|
-
# @return [self] if a block is given
|
974
|
-
# @return [Enumerator] if no block is given
|
975
|
-
def each_pair; end
|
976
|
-
|
977
|
-
# Calls the given block for each `value` node in the `hash` literal.
|
978
|
-
# If no block is given, an `Enumerator` is returned.
|
979
|
-
#
|
980
|
-
# @note `kwsplat` nodes are ignored.
|
981
|
-
# @return [self] if a block is given
|
982
|
-
# @return [Enumerator] if no block is given
|
983
|
-
def each_value(&block); end
|
984
|
-
|
985
|
-
# Checks whether the `hash` node contains any `pair`- or `kwsplat` nodes.
|
986
|
-
#
|
987
|
-
# @return[Boolean] whether the `hash` is empty
|
988
|
-
#
|
989
|
-
# @return [Boolean]
|
990
|
-
def empty?; end
|
991
|
-
|
992
|
-
# Returns an array of all the keys in the `hash` literal.
|
993
|
-
#
|
994
|
-
# @note `kwsplat` nodes are ignored.
|
995
|
-
# @return [Array<Node>] an array of keys in the `hash` literal
|
996
|
-
def keys; end
|
997
|
-
|
998
|
-
# Checks whether this `hash` uses a mix of hash rocket and colon
|
999
|
-
# delimiters for its pairs.
|
1000
|
-
#
|
1001
|
-
# @note `kwsplat` nodes are ignored.
|
1002
|
-
# @return [Boolean] whether the `hash` uses mixed delimiters
|
1003
|
-
def mixed_delimiters?; end
|
1004
|
-
|
1005
|
-
# Returns an array of all the key value pairs in the `hash` literal.
|
1006
|
-
#
|
1007
|
-
# ignored.
|
1008
|
-
#
|
1009
|
-
# @note this may be different from children as `kwsplat` nodes are
|
1010
|
-
# @return [Array<PairNode>] an array of `pair` nodes
|
1011
|
-
def pairs; end
|
1012
|
-
|
1013
|
-
# Checks whether any of the key value pairs in the `hash` literal are on
|
1014
|
-
# the same line.
|
1015
|
-
#
|
1016
|
-
# @note A multiline `pair` is considered to be on the same line if it
|
1017
|
-
# shares any of its lines with another `pair`
|
1018
|
-
# @note `kwsplat` nodes are ignored.
|
1019
|
-
# @return [Boolean] whether any `pair` nodes are on the same line
|
1020
|
-
def pairs_on_same_line?; end
|
1021
|
-
|
1022
|
-
# Returns an array of all the values in the `hash` literal.
|
1023
|
-
#
|
1024
|
-
# @note `kwsplat` nodes are ignored.
|
1025
|
-
# @return [Array<Node>] an array of values in the `hash` literal
|
1026
|
-
def values; end
|
1027
|
-
end
|
1028
|
-
|
1029
|
-
# A node extension for `if` nodes. This will be used in place of a plain
|
1030
|
-
# node when the builder constructs the AST, making its methods available
|
1031
|
-
# to all `if` nodes within RuboCop.
|
1032
|
-
class RuboCop::AST::IfNode < ::RuboCop::AST::Node
|
1033
|
-
include ::RuboCop::AST::ConditionalNode
|
1034
|
-
include ::RuboCop::AST::ModifierNode
|
1035
|
-
|
1036
|
-
# Returns an array of all the branches in the conditional statement.
|
1037
|
-
#
|
1038
|
-
# @return [Array<Node>] an array of branch nodes
|
1039
|
-
def branches; end
|
1040
|
-
|
1041
|
-
# @deprecated Use `branches.each`
|
1042
|
-
def each_branch(&block); end
|
1043
|
-
|
1044
|
-
# Checks whether the `if` node has an `else` clause.
|
1045
|
-
#
|
1046
|
-
# @note This returns `true` for nodes containing an `elsif` clause.
|
1047
|
-
# This is legacy behavior, and many cops rely on it.
|
1048
|
-
# @return [Boolean] whether the node has an `else` clause
|
1049
|
-
def else?; end
|
1050
|
-
|
1051
|
-
# Returns the branch of the `if` node that gets evaluated when its
|
1052
|
-
# condition is falsey.
|
1053
|
-
#
|
1054
|
-
# @note This is normalized for `unless` nodes.
|
1055
|
-
# @return [Node] the falsey branch node of the `if` node
|
1056
|
-
# @return [nil] when there is no else branch
|
1057
|
-
def else_branch; end
|
1058
|
-
|
1059
|
-
# Checks whether the `if` is an `elsif`. Parser handles these by nesting
|
1060
|
-
# `if` nodes in the `else` branch.
|
1061
|
-
#
|
1062
|
-
# @return [Boolean] whether the node is an `elsif`
|
1063
|
-
def elsif?; end
|
1064
|
-
|
1065
|
-
# Checks whether the `if` node has at least one `elsif` branch. Returns
|
1066
|
-
# true if this `if` node itself is an `elsif`.
|
1067
|
-
#
|
1068
|
-
# @return [Boolean] whether the `if` node has at least one `elsif` branch
|
1069
|
-
def elsif_conditional?; end
|
1070
|
-
|
1071
|
-
# Checks whether this node is an `if` statement. (This is not true of
|
1072
|
-
# ternary operators and `unless` statements.)
|
1073
|
-
#
|
1074
|
-
# @return [Boolean] whether the node is an `if` statement
|
1075
|
-
def if?; end
|
1076
|
-
|
1077
|
-
# Returns the branch of the `if` node that gets evaluated when its
|
1078
|
-
# condition is truthy.
|
1079
|
-
#
|
1080
|
-
# @note This is normalized for `unless` nodes.
|
1081
|
-
# @return [Node] the truthy branch node of the `if` node
|
1082
|
-
# @return [nil] if the truthy branch is empty
|
1083
|
-
def if_branch; end
|
1084
|
-
|
1085
|
-
# Returns the inverse keyword of the `if` node as a string. Returns `if`
|
1086
|
-
# for `unless` nodes and vice versa. Returns an empty string for ternary
|
1087
|
-
# operators.
|
1088
|
-
#
|
1089
|
-
# @return [String] the inverse keyword of the `if` statement
|
1090
|
-
def inverse_keyword; end
|
1091
|
-
|
1092
|
-
# Returns the keyword of the `if` statement as a string. Returns an empty
|
1093
|
-
# string for ternary operators.
|
1094
|
-
#
|
1095
|
-
# @return [String] the keyword of the `if` statement
|
1096
|
-
def keyword; end
|
1097
|
-
|
1098
|
-
# Checks whether the `if` node is in a modifier form, i.e. a condition
|
1099
|
-
# trailing behind an expression. Only `if` and `unless` nodes without
|
1100
|
-
# other branches can be modifiers.
|
1101
|
-
#
|
1102
|
-
# @return [Boolean] whether the `if` node is a modifier
|
1103
|
-
def modifier_form?; end
|
1104
|
-
|
1105
|
-
# Chacks whether the `if` node has nested `if` nodes in any of its
|
1106
|
-
# branches.
|
1107
|
-
#
|
1108
|
-
# @note This performs a shallow search.
|
1109
|
-
# @return [Boolean] whether the `if` node contains nested conditionals
|
1110
|
-
def nested_conditional?; end
|
1111
|
-
|
1112
|
-
# Custom destructuring method. This is used to normalize the branches
|
1113
|
-
# for `if` and `unless` nodes, to aid comparisons and conversions.
|
1114
|
-
#
|
1115
|
-
# @return [Array<Node>] the different parts of the `if` statement
|
1116
|
-
def node_parts; end
|
1117
|
-
|
1118
|
-
# Checks whether the `if` node is a ternary operator.
|
1119
|
-
#
|
1120
|
-
# @return [Boolean] whether the `if` node is a ternary operator
|
1121
|
-
def ternary?; end
|
1122
|
-
|
1123
|
-
# Checks whether this node is an `unless` statement. (This is not true
|
1124
|
-
# of ternary operators and `if` statements.)
|
1125
|
-
#
|
1126
|
-
# @return [Boolean] whether the node is an `unless` statement
|
1127
|
-
def unless?; end
|
1128
|
-
end
|
1129
|
-
|
1130
|
-
# A node extension for `in` nodes. This will be used in place of a plain
|
1131
|
-
# node when the builder constructs the AST, making its methods available
|
1132
|
-
# to all `in` nodes within RuboCop.
|
1133
|
-
class RuboCop::AST::InPatternNode < ::RuboCop::AST::Node
|
1134
|
-
# Returns the body of the `in` node.
|
1135
|
-
#
|
1136
|
-
# @return [Node, nil] the body of the `in` node
|
1137
|
-
def body; end
|
1138
|
-
|
1139
|
-
# Returns the index of the `in` branch within the `case` statement.
|
1140
|
-
#
|
1141
|
-
# @return [Integer] the index of the `in` branch
|
1142
|
-
def branch_index; end
|
1143
|
-
|
1144
|
-
# Returns a node of the pattern in the `in` branch.
|
1145
|
-
#
|
1146
|
-
# @return [Node] a pattern node
|
1147
|
-
def pattern; end
|
1148
|
-
|
1149
|
-
# Checks whether the `in` node has a `then` keyword.
|
1150
|
-
#
|
1151
|
-
# @return [Boolean] whether the `in` node has a `then` keyword
|
1152
|
-
def then?; end
|
1153
|
-
end
|
1154
|
-
|
1155
|
-
# Used for modern support only!
|
1156
|
-
# Not as thoroughly tested as legacy equivalent
|
1157
|
-
#
|
1158
|
-
# $ ruby-parse -e "foo[:bar]"
|
1159
|
-
# (index
|
1160
|
-
# (send nil :foo)
|
1161
|
-
# (sym :bar))
|
1162
|
-
# $ ruby-parse --legacy -e "foo[:bar]"
|
1163
|
-
# (send
|
1164
|
-
# (send nil :foo) :[]
|
1165
|
-
# (sym :bar))
|
1166
|
-
#
|
1167
|
-
# The main RuboCop runs in legacy mode; this node is only used
|
1168
|
-
# if user `AST::Builder.modernize` or `AST::Builder.emit_index=true`
|
1169
|
-
class RuboCop::AST::IndexNode < ::RuboCop::AST::Node
|
1170
|
-
include ::RuboCop::AST::ParameterizedNode
|
1171
|
-
include ::RuboCop::AST::ParameterizedNode::RestArguments
|
1172
|
-
include ::RuboCop::AST::MethodIdentifierPredicates
|
1173
|
-
include ::RuboCop::AST::MethodDispatchNode
|
1174
|
-
|
1175
|
-
# For similarity with legacy mode
|
1176
|
-
#
|
1177
|
-
# @return [Boolean]
|
1178
|
-
def assignment_method?; end
|
1179
|
-
|
1180
|
-
# For similarity with legacy mode
|
1181
|
-
#
|
1182
|
-
# @return [Boolean]
|
1183
|
-
def attribute_accessor?; end
|
1184
|
-
|
1185
|
-
# For similarity with legacy mode
|
1186
|
-
def method_name; end
|
1187
|
-
|
1188
|
-
private
|
1189
|
-
|
1190
|
-
# An array containing the arguments of the dispatched method.
|
1191
|
-
#
|
1192
|
-
# @return [Array<Node>] the arguments of the dispatched method
|
1193
|
-
def first_argument_index; end
|
1194
|
-
end
|
1195
|
-
|
1196
|
-
# Used for modern support only!
|
1197
|
-
# Not as thoroughly tested as legacy equivalent
|
1198
|
-
#
|
1199
|
-
# $ ruby-parse -e "foo[:bar] = :baz"
|
1200
|
-
# (indexasgn
|
1201
|
-
# (send nil :foo)
|
1202
|
-
# (sym :bar)
|
1203
|
-
# (sym :baz))
|
1204
|
-
# $ ruby-parse --legacy -e "foo[:bar] = :baz"
|
1205
|
-
# (send
|
1206
|
-
# (send nil :foo) :[]=
|
1207
|
-
# (sym :bar)
|
1208
|
-
# (sym :baz))
|
1209
|
-
#
|
1210
|
-
# The main RuboCop runs in legacy mode; this node is only used
|
1211
|
-
# if user `AST::Builder.modernize` or `AST::Builder.emit_index=true`
|
1212
|
-
class RuboCop::AST::IndexasgnNode < ::RuboCop::AST::Node
|
1213
|
-
include ::RuboCop::AST::ParameterizedNode
|
1214
|
-
include ::RuboCop::AST::ParameterizedNode::RestArguments
|
1215
|
-
include ::RuboCop::AST::MethodIdentifierPredicates
|
1216
|
-
include ::RuboCop::AST::MethodDispatchNode
|
1217
|
-
|
1218
|
-
# For similarity with legacy mode
|
1219
|
-
#
|
1220
|
-
# @return [Boolean]
|
1221
|
-
def assignment_method?; end
|
1222
|
-
|
1223
|
-
# For similarity with legacy mode
|
1224
|
-
#
|
1225
|
-
# @return [Boolean]
|
1226
|
-
def attribute_accessor?; end
|
1227
|
-
|
1228
|
-
# For similarity with legacy mode
|
1229
|
-
def method_name; end
|
1230
|
-
|
1231
|
-
private
|
1232
|
-
|
1233
|
-
# An array containing the arguments of the dispatched method.
|
1234
|
-
#
|
1235
|
-
# @return [Array<Node>] the arguments of the dispatched method
|
1236
|
-
def first_argument_index; end
|
1237
|
-
end
|
1238
|
-
|
1239
|
-
# A node extension for `int` nodes. This will be used in place of a plain
|
1240
|
-
# node when the builder constructs the AST, making its methods available to
|
1241
|
-
# all `int` nodes within RuboCop.
|
1242
|
-
class RuboCop::AST::IntNode < ::RuboCop::AST::Node
|
1243
|
-
include ::RuboCop::AST::BasicLiteralNode
|
1244
|
-
include ::RuboCop::AST::NumericNode
|
1245
|
-
end
|
1246
|
-
|
1247
|
-
# A node extension for `kwsplat` nodes. This will be used in place of a
|
1248
|
-
# plain node when the builder constructs the AST, making its methods
|
1249
|
-
# available to all `kwsplat` nodes within RuboCop.
|
1250
|
-
class RuboCop::AST::KeywordSplatNode < ::RuboCop::AST::Node
|
1251
|
-
include ::RuboCop::AST::HashElementNode
|
1252
|
-
|
1253
|
-
# This is used for duck typing with `pair` nodes which also appear as
|
1254
|
-
# `hash` elements.
|
1255
|
-
#
|
1256
|
-
# @return [false]
|
1257
|
-
def colon?; end
|
1258
|
-
|
1259
|
-
# This is used for duck typing with `pair` nodes which also appear as
|
1260
|
-
# `hash` elements.
|
1261
|
-
#
|
1262
|
-
# @return [false]
|
1263
|
-
def hash_rocket?; end
|
1264
|
-
|
1265
|
-
# Custom destructuring method. This is used to normalize the branches
|
1266
|
-
# for `pair` and `kwsplat` nodes, to add duck typing to `hash` elements.
|
1267
|
-
#
|
1268
|
-
# @return [Array<KeywordSplatNode>] the different parts of the `kwsplat`
|
1269
|
-
def node_parts; end
|
1270
|
-
|
1271
|
-
# Returns the operator for the `kwsplat` as a string.
|
1272
|
-
#
|
1273
|
-
# @return [String] the double splat operator
|
1274
|
-
def operator; end
|
1275
|
-
end
|
1276
|
-
|
1277
|
-
RuboCop::AST::KeywordSplatNode::DOUBLE_SPLAT = T.let(T.unsafe(nil), String)
|
1278
|
-
|
1279
|
-
# Used for modern support only:
|
1280
|
-
# Not as thoroughly tested as legacy equivalent
|
1281
|
-
#
|
1282
|
-
# $ ruby-parse -e "->(foo) { bar }"
|
1283
|
-
# (block
|
1284
|
-
# (lambda)
|
1285
|
-
# (args
|
1286
|
-
# (arg :foo))
|
1287
|
-
# (send nil :bar))
|
1288
|
-
# $ ruby-parse --legacy -e "->(foo) { bar }"
|
1289
|
-
# (block
|
1290
|
-
# (send nil :lambda)
|
1291
|
-
# (args
|
1292
|
-
# (arg :foo))
|
1293
|
-
# (send nil :bar))
|
1294
|
-
#
|
1295
|
-
# The main RuboCop runs in legacy mode; this node is only used
|
1296
|
-
# if user `AST::Builder.modernize` or `AST::Builder.emit_lambda=true`
|
1297
|
-
class RuboCop::AST::LambdaNode < ::RuboCop::AST::Node
|
1298
|
-
include ::RuboCop::AST::ParameterizedNode
|
1299
|
-
include ::RuboCop::AST::ParameterizedNode::RestArguments
|
1300
|
-
include ::RuboCop::AST::MethodIdentifierPredicates
|
1301
|
-
include ::RuboCop::AST::MethodDispatchNode
|
1302
|
-
|
1303
|
-
# For similarity with legacy mode
|
1304
|
-
#
|
1305
|
-
# @return [Boolean]
|
1306
|
-
def assignment_method?; end
|
1307
|
-
|
1308
|
-
# For similarity with legacy mode
|
1309
|
-
#
|
1310
|
-
# @return [Boolean]
|
1311
|
-
def attribute_accessor?; end
|
1312
|
-
|
1313
|
-
# For similarity with legacy mode
|
1314
|
-
#
|
1315
|
-
# @return [Boolean]
|
1316
|
-
def lambda?; end
|
1317
|
-
|
1318
|
-
# For similarity with legacy mode
|
1319
|
-
#
|
1320
|
-
# @return [Boolean]
|
1321
|
-
def lambda_literal?; end
|
1322
|
-
|
1323
|
-
# For similarity with legacy mode
|
1324
|
-
def method_name; end
|
1325
|
-
|
1326
|
-
# For similarity with legacy mode
|
1327
|
-
def receiver; end
|
1328
|
-
|
1329
|
-
private
|
1330
|
-
|
1331
|
-
# For similarity with legacy mode
|
1332
|
-
def first_argument_index; end
|
1333
|
-
end
|
1334
|
-
|
1335
|
-
# Common functionality for nodes that are a kind of method dispatch:
|
1336
|
-
# `send`, `csend`, `super`, `zsuper`, `yield`, `defined?`,
|
1337
|
-
# and (modern only): `index`, `indexasgn`, `lambda`
|
1338
|
-
module RuboCop::AST::MethodDispatchNode
|
1339
|
-
include ::RuboCop::AST::MethodIdentifierPredicates
|
1340
|
-
extend ::RuboCop::AST::NodePattern::Macros
|
1341
|
-
|
1342
|
-
# Checks whether the dispatched method is an access modifier.
|
1343
|
-
#
|
1344
|
-
# @return [Boolean] whether the dispatched method is an access modifier
|
1345
|
-
def access_modifier?; end
|
1346
|
-
|
1347
|
-
def adjacent_def_modifier?(param0 = T.unsafe(nil)); end
|
1348
|
-
|
1349
|
-
# Checks whether this node is an arithmetic operation
|
1350
|
-
#
|
1351
|
-
# @return [Boolean] whether the dispatched method is an arithmetic
|
1352
|
-
# operation
|
1353
|
-
def arithmetic_operation?; end
|
1354
|
-
|
1355
|
-
# Checks whether the dispatched method is a setter method.
|
1356
|
-
#
|
1357
|
-
# @return [Boolean] whether the dispatched method is a setter
|
1358
|
-
def assignment?; end
|
1359
|
-
|
1360
|
-
# Checks whether the dispatched method is a bare access modifier that
|
1361
|
-
# affects all methods defined after the macro.
|
1362
|
-
#
|
1363
|
-
# @return [Boolean] whether the dispatched method is a bare
|
1364
|
-
# access modifier
|
1365
|
-
def bare_access_modifier?; end
|
1366
|
-
|
1367
|
-
def bare_access_modifier_declaration?(param0 = T.unsafe(nil)); end
|
1368
|
-
|
1369
|
-
# Checks whether this is a binary operation.
|
1370
|
-
#
|
1371
|
-
# @example
|
1372
|
-
#
|
1373
|
-
# foo + bar
|
1374
|
-
# @return [Bookean] whether this method is a binary operation
|
1375
|
-
def binary_operation?; end
|
1376
|
-
|
1377
|
-
# Whether this method dispatch has an explicit block.
|
1378
|
-
#
|
1379
|
-
# @return [Boolean] whether the dispatched method has a block
|
1380
|
-
def block_literal?; end
|
1381
|
-
|
1382
|
-
# The `block` or `numblock` node associated with this method dispatch, if any.
|
1383
|
-
#
|
1384
|
-
# @return [BlockNode, nil] the `block` or `numblock` node associated with this method
|
1385
|
-
# call or `nil`
|
1386
|
-
def block_node; end
|
1387
|
-
|
1388
|
-
# Checks whether the name of the dispatched method matches the argument
|
1389
|
-
# and has an implicit receiver.
|
1390
|
-
#
|
1391
|
-
# @param name [Symbol, String] the method name to check for
|
1392
|
-
# @return [Boolean] whether the method name matches the argument
|
1393
|
-
def command?(name); end
|
1394
|
-
|
1395
|
-
# Checks whether the *explicit* receiver of this method dispatch is a
|
1396
|
-
# `const` node.
|
1397
|
-
#
|
1398
|
-
# @return [Boolean] whether the receiver of this method dispatch
|
1399
|
-
# is a `const` node
|
1400
|
-
def const_receiver?; end
|
1401
|
-
|
1402
|
-
# Checks if this node is part of a chain of `def` or `defs` modifiers.
|
1403
|
-
#
|
1404
|
-
# or `nil` if it isn't a def modifier
|
1405
|
-
#
|
1406
|
-
# @example
|
1407
|
-
#
|
1408
|
-
# private def foo; end
|
1409
|
-
# @return [Node | nil] returns the `def|defs` node this is a modifier for,
|
1410
|
-
def def_modifier(node = T.unsafe(nil)); end
|
1411
|
-
|
1412
|
-
# Checks if this node is part of a chain of `def` or `defs` modifiers.
|
1413
|
-
#
|
1414
|
-
# See also `def_modifier` that returns the node or `nil`
|
1415
|
-
#
|
1416
|
-
# @example
|
1417
|
-
#
|
1418
|
-
# private def foo; end
|
1419
|
-
# @return [Boolean] whether the `def|defs` node is a modifier or not.
|
1420
|
-
def def_modifier?(node = T.unsafe(nil)); end
|
1421
|
-
|
1422
|
-
# Checks whether the dispatched method uses a dot to connect the
|
1423
|
-
# receiver and the method name.
|
1424
|
-
#
|
1425
|
-
# This is useful for comparison operators, which can be called either
|
1426
|
-
# with or without a dot, i.e. `foo == bar` or `foo.== bar`.
|
1427
|
-
#
|
1428
|
-
# @return [Boolean] whether the method was called with a connecting dot
|
1429
|
-
def dot?; end
|
1430
|
-
|
1431
|
-
# Checks whether the dispatched method uses a double colon to connect the
|
1432
|
-
# receiver and the method name.
|
1433
|
-
#
|
1434
|
-
# @return [Boolean] whether the method was called with a connecting dot
|
1435
|
-
def double_colon?; end
|
1436
|
-
|
1437
|
-
# Checks whether the method dispatch is the implicit form of `#call`,
|
1438
|
-
# e.g. `foo.(bar)`.
|
1439
|
-
#
|
1440
|
-
# @return [Boolean] whether the method is the implicit form of `#call`
|
1441
|
-
def implicit_call?; end
|
1442
|
-
|
1443
|
-
def in_macro_scope?(param0 = T.unsafe(nil)); end
|
1444
|
-
|
1445
|
-
# Checks whether this is a lambda. Some versions of parser parses
|
1446
|
-
# non-literal lambdas as a method send.
|
1447
|
-
#
|
1448
|
-
# @return [Boolean] whether this method is a lambda
|
1449
|
-
def lambda?; end
|
1450
|
-
|
1451
|
-
# Checks whether this is a lambda literal (stabby lambda.)
|
1452
|
-
#
|
1453
|
-
# @example
|
1454
|
-
#
|
1455
|
-
# -> (foo) { bar }
|
1456
|
-
# @return [Boolean] whether this method is a lambda literal
|
1457
|
-
def lambda_literal?; end
|
1458
|
-
|
1459
|
-
# Checks whether the dispatched method is a macro method. A macro method
|
1460
|
-
# is defined as a method that sits in a class, module, or block body and
|
1461
|
-
# has an implicit receiver.
|
1462
|
-
#
|
1463
|
-
# @note This does not include DSLs that use nested blocks, like RSpec
|
1464
|
-
# @return [Boolean] whether the dispatched method is a macro method
|
1465
|
-
def macro?; end
|
1466
|
-
|
1467
|
-
# The name of the dispatched method as a symbol.
|
1468
|
-
#
|
1469
|
-
# @return [Symbol] the name of the dispatched method
|
1470
|
-
def method_name; end
|
1471
|
-
|
1472
|
-
# Checks whether the dispatched method is a non-bare access modifier that
|
1473
|
-
# affects only the method it receives.
|
1474
|
-
#
|
1475
|
-
# @return [Boolean] whether the dispatched method is a non-bare
|
1476
|
-
# access modifier
|
1477
|
-
def non_bare_access_modifier?; end
|
1478
|
-
|
1479
|
-
def non_bare_access_modifier_declaration?(param0 = T.unsafe(nil)); end
|
1480
|
-
|
1481
|
-
# The receiving node of the method dispatch.
|
1482
|
-
#
|
1483
|
-
# @return [Node, nil] the receiver of the dispatched method or `nil`
|
1484
|
-
def receiver; end
|
1485
|
-
|
1486
|
-
# Checks whether the dispatched method uses a safe navigation operator to
|
1487
|
-
# connect the receiver and the method name.
|
1488
|
-
#
|
1489
|
-
# @return [Boolean] whether the method was called with a connecting dot
|
1490
|
-
def safe_navigation?; end
|
1491
|
-
|
1492
|
-
# Checks whether the *explicit* receiver of this method dispatch is
|
1493
|
-
# `self`.
|
1494
|
-
#
|
1495
|
-
# @return [Boolean] whether the receiver of this method dispatch is `self`
|
1496
|
-
def self_receiver?; end
|
1497
|
-
|
1498
|
-
# Checks whether the dispatched method is a setter method.
|
1499
|
-
#
|
1500
|
-
# @return [Boolean] whether the dispatched method is a setter
|
1501
|
-
def setter_method?; end
|
1502
|
-
|
1503
|
-
# Checks whether the dispatched method is a bare `private` or `protected`
|
1504
|
-
# access modifier that affects all methods defined after the macro.
|
1505
|
-
#
|
1506
|
-
# @return [Boolean] whether the dispatched method is a bare
|
1507
|
-
# `private` or `protected` access modifier
|
1508
|
-
def special_modifier?; end
|
1509
|
-
|
1510
|
-
# Checks whether this is a unary operation.
|
1511
|
-
#
|
1512
|
-
# @example
|
1513
|
-
#
|
1514
|
-
# -foo
|
1515
|
-
# @return [Boolean] whether this method is a unary operation
|
1516
|
-
def unary_operation?; end
|
1517
|
-
end
|
1518
|
-
|
1519
|
-
RuboCop::AST::MethodDispatchNode::ARITHMETIC_OPERATORS = T.let(T.unsafe(nil), Array)
|
1520
|
-
RuboCop::AST::MethodDispatchNode::SPECIAL_MODIFIERS = T.let(T.unsafe(nil), Array)
|
1521
|
-
|
1522
|
-
# Common predicates for nodes that reference method identifiers:
|
1523
|
-
# `send`, `csend`, `def`, `defs`, `super`, `zsuper`
|
1524
|
-
#
|
1525
|
-
# @note this mixin expects `#method_name` and `#receiver` to be implemented
|
1526
|
-
module RuboCop::AST::MethodIdentifierPredicates
|
1527
|
-
# Checks whether the method is an assignment method.
|
1528
|
-
#
|
1529
|
-
# @return [Boolean] whether the method is an assignment
|
1530
|
-
def assignment_method?; end
|
1531
|
-
|
1532
|
-
# Checks whether the method is a bang method.
|
1533
|
-
#
|
1534
|
-
# @return [Boolean] whether the method is a bang method
|
1535
|
-
def bang_method?; end
|
1536
|
-
|
1537
|
-
# Checks whether the method is a camel case method,
|
1538
|
-
# e.g. `Integer()`.
|
1539
|
-
#
|
1540
|
-
# @return [Boolean] whether the method is a camel case method
|
1541
|
-
def camel_case_method?; end
|
1542
|
-
|
1543
|
-
# Checks whether the method is a comparison method.
|
1544
|
-
#
|
1545
|
-
# @return [Boolean] whether the method is a comparison
|
1546
|
-
def comparison_method?; end
|
1547
|
-
|
1548
|
-
# Checks whether the *explicit* receiver of node is a `const` node.
|
1549
|
-
#
|
1550
|
-
# @return [Boolean] whether the receiver of this node is a `const` node
|
1551
|
-
def const_receiver?; end
|
1552
|
-
|
1553
|
-
# Checks whether the method is an Enumerable method.
|
1554
|
-
#
|
1555
|
-
# @return [Boolean] whether the method is an Enumerable method
|
1556
|
-
def enumerable_method?; end
|
1557
|
-
|
1558
|
-
# Checks whether the method is an enumerator method.
|
1559
|
-
#
|
1560
|
-
# @return [Boolean] whether the method is an enumerator
|
1561
|
-
def enumerator_method?; end
|
1562
|
-
|
1563
|
-
# Checks whether the method name matches the argument.
|
1564
|
-
#
|
1565
|
-
# @param name [Symbol, String] the method name to check for
|
1566
|
-
# @return [Boolean] whether the method name matches the argument
|
1567
|
-
def method?(name); end
|
1568
|
-
|
1569
|
-
# Checks whether this is a negation method, i.e. `!` or keyword `not`.
|
1570
|
-
#
|
1571
|
-
# @return [Boolean] whether this method is a negation method
|
1572
|
-
def negation_method?; end
|
1573
|
-
|
1574
|
-
# Checks whether the method is a nonmutating Array method.
|
1575
|
-
#
|
1576
|
-
# @return [Boolean] whether the method is a nonmutating Array method
|
1577
|
-
def nonmutating_array_method?; end
|
1578
|
-
|
1579
|
-
# Checks whether the method is a nonmutating binary operator method.
|
1580
|
-
#
|
1581
|
-
# @return [Boolean] whether the method is a nonmutating binary operator method
|
1582
|
-
def nonmutating_binary_operator_method?; end
|
1583
|
-
|
1584
|
-
# Checks whether the method is a nonmutating Hash method.
|
1585
|
-
#
|
1586
|
-
# @return [Boolean] whether the method is a nonmutating Hash method
|
1587
|
-
def nonmutating_hash_method?; end
|
1588
|
-
|
1589
|
-
# Checks whether the method is a nonmutating operator method.
|
1590
|
-
#
|
1591
|
-
# @return [Boolean] whether the method is a nonmutating operator method
|
1592
|
-
def nonmutating_operator_method?; end
|
1593
|
-
|
1594
|
-
# Checks whether the method is a nonmutating String method.
|
1595
|
-
#
|
1596
|
-
# @return [Boolean] whether the method is a nonmutating String method
|
1597
|
-
def nonmutating_string_method?; end
|
1598
|
-
|
1599
|
-
# Checks whether the method is a nonmutating unary operator method.
|
1600
|
-
#
|
1601
|
-
# @return [Boolean] whether the method is a nonmutating unary operator method
|
1602
|
-
def nonmutating_unary_operator_method?; end
|
1603
|
-
|
1604
|
-
# Checks whether the method is an operator method.
|
1605
|
-
#
|
1606
|
-
# @return [Boolean] whether the method is an operator
|
1607
|
-
def operator_method?; end
|
1608
|
-
|
1609
|
-
# Checks whether the method is a predicate method.
|
1610
|
-
#
|
1611
|
-
# @return [Boolean] whether the method is a predicate method
|
1612
|
-
def predicate_method?; end
|
1613
|
-
|
1614
|
-
# Checks whether this is a prefix bang method, e.g. `!foo`.
|
1615
|
-
#
|
1616
|
-
# @return [Boolean] whether this method is a prefix bang
|
1617
|
-
def prefix_bang?; end
|
1618
|
-
|
1619
|
-
# Checks whether this is a prefix not method, e.g. `not foo`.
|
1620
|
-
#
|
1621
|
-
# @return [Boolean] whether this method is a prefix not
|
1622
|
-
def prefix_not?; end
|
1623
|
-
|
1624
|
-
# Checks whether the *explicit* receiver of this node is `self`.
|
1625
|
-
#
|
1626
|
-
# @return [Boolean] whether the receiver of this node is `self`
|
1627
|
-
def self_receiver?; end
|
1628
|
-
end
|
1629
|
-
|
1630
|
-
RuboCop::AST::MethodIdentifierPredicates::ENUMERABLE_METHODS = T.let(T.unsafe(nil), Set)
|
1631
|
-
RuboCop::AST::MethodIdentifierPredicates::ENUMERATOR_METHODS = T.let(T.unsafe(nil), Set)
|
1632
|
-
RuboCop::AST::MethodIdentifierPredicates::NONMUTATING_ARRAY_METHODS = T.let(T.unsafe(nil), Set)
|
1633
|
-
RuboCop::AST::MethodIdentifierPredicates::NONMUTATING_BINARY_OPERATOR_METHODS = T.let(T.unsafe(nil), Set)
|
1634
|
-
RuboCop::AST::MethodIdentifierPredicates::NONMUTATING_HASH_METHODS = T.let(T.unsafe(nil), Set)
|
1635
|
-
RuboCop::AST::MethodIdentifierPredicates::NONMUTATING_OPERATOR_METHODS = T.let(T.unsafe(nil), Set)
|
1636
|
-
RuboCop::AST::MethodIdentifierPredicates::NONMUTATING_STRING_METHODS = T.let(T.unsafe(nil), Set)
|
1637
|
-
RuboCop::AST::MethodIdentifierPredicates::NONMUTATING_UNARY_OPERATOR_METHODS = T.let(T.unsafe(nil), Set)
|
1638
|
-
|
1639
|
-
# http://phrogz.net/programmingruby/language.html#table_18.4
|
1640
|
-
RuboCop::AST::MethodIdentifierPredicates::OPERATOR_METHODS = T.let(T.unsafe(nil), Set)
|
1641
|
-
|
1642
|
-
# Common functionality for nodes that can be used as modifiers:
|
1643
|
-
# `if`, `while`, `until`
|
1644
|
-
module RuboCop::AST::ModifierNode
|
1645
|
-
# Checks whether the node is in a modifier form, i.e. a condition
|
1646
|
-
# trailing behind an expression.
|
1647
|
-
#
|
1648
|
-
# @return [Boolean] whether the node is a modifier
|
1649
|
-
def modifier_form?; end
|
1650
|
-
end
|
1651
|
-
|
1652
|
-
# A node extension for `module` nodes. This will be used in place of a
|
1653
|
-
# plain node when the builder constructs the AST, making its methods
|
1654
|
-
# available to all `module` nodes within RuboCop.
|
1655
|
-
class RuboCop::AST::ModuleNode < ::RuboCop::AST::Node
|
1656
|
-
# The body of this `module` node.
|
1657
|
-
#
|
1658
|
-
# @return [Node, nil] the body of the module
|
1659
|
-
def body; end
|
1660
|
-
|
1661
|
-
# The identifier for this `module` node.
|
1662
|
-
#
|
1663
|
-
# @return [Node] the identifier of the module
|
1664
|
-
def identifier; end
|
1665
|
-
end
|
1666
|
-
|
1667
|
-
# A node extension for `next` nodes. This will be used in place of a
|
1668
|
-
# plain node when the builder constructs the AST, making its methods
|
1669
|
-
# available to all `next` nodes within RuboCop.
|
1670
|
-
class RuboCop::AST::NextNode < ::RuboCop::AST::Node
|
1671
|
-
include ::RuboCop::AST::ParameterizedNode
|
1672
|
-
include ::RuboCop::AST::ParameterizedNode::WrappedArguments
|
1673
|
-
end
|
1674
|
-
|
1675
|
-
# `RuboCop::AST::Node` is a subclass of `Parser::AST::Node`. It provides
|
1676
|
-
# access to parent nodes and an object-oriented way to traverse an AST with
|
1677
|
-
# the power of `Enumerable`.
|
1678
|
-
#
|
1679
|
-
# It has predicate methods for every node type, like this:
|
1680
|
-
#
|
1681
|
-
# @example
|
1682
|
-
# node.send_type? # Equivalent to: `node.type == :send`
|
1683
|
-
# node.op_asgn_type? # Equivalent to: `node.type == :op_asgn`
|
1684
|
-
#
|
1685
|
-
# # Non-word characters (other than a-zA-Z0-9_) in type names are omitted.
|
1686
|
-
# node.defined_type? # Equivalent to: `node.type == :defined?`
|
1687
|
-
#
|
1688
|
-
# # Find the first lvar node under the receiver node.
|
1689
|
-
# lvar_node = node.each_descendant.find(&:lvar_type?)
|
1690
|
-
class RuboCop::AST::Node < ::Parser::AST::Node
|
1691
|
-
include ::RuboCop::AST::Sexp
|
1692
|
-
include ::RuboCop::AST::Descendence
|
1693
|
-
extend ::RuboCop::AST::NodePattern::Macros
|
1694
|
-
|
1695
|
-
# @return [Node] a new instance of Node
|
1696
|
-
# @see https://www.rubydoc.info/gems/ast/AST/Node:initialize
|
1697
|
-
def initialize(type, children = T.unsafe(nil), properties = T.unsafe(nil)); end
|
1698
|
-
|
1699
|
-
def __ENCODING___type?; end
|
1700
|
-
def __FILE___type?; end
|
1701
|
-
def __LINE___type?; end
|
1702
|
-
def alias_type?; end
|
1703
|
-
|
1704
|
-
# Returns an array of ancestor nodes.
|
1705
|
-
# This is a shorthand for `node.each_ancestor.to_a`.
|
1706
|
-
#
|
1707
|
-
# @return [Array<Node>] an array of ancestor nodes
|
1708
|
-
def ancestors; end
|
1709
|
-
|
1710
|
-
def and_asgn_type?; end
|
1711
|
-
def and_type?; end
|
1712
|
-
def arg_expr_type?; end
|
1713
|
-
def arg_type?; end
|
1714
|
-
def args_type?; end
|
1715
|
-
|
1716
|
-
# @return [Boolean]
|
1717
|
-
def argument?; end
|
1718
|
-
|
1719
|
-
# @return [Boolean]
|
1720
|
-
def argument_type?; end
|
1721
|
-
|
1722
|
-
def array_pattern_type?; end
|
1723
|
-
def array_pattern_with_tail_type?; end
|
1724
|
-
def array_type?; end
|
1725
|
-
|
1726
|
-
# @return [Boolean]
|
1727
|
-
def assignment?; end
|
1728
|
-
|
1729
|
-
# Some cops treat the shovel operator as a kind of assignment.
|
1730
|
-
def assignment_or_similar?(param0 = T.unsafe(nil)); end
|
1731
|
-
|
1732
|
-
def back_ref_type?; end
|
1733
|
-
|
1734
|
-
# @return [Boolean]
|
1735
|
-
def basic_conditional?; end
|
1736
|
-
|
1737
|
-
# @return [Boolean]
|
1738
|
-
def basic_literal?; end
|
1739
|
-
|
1740
|
-
def begin_type?; end
|
1741
|
-
def block_pass_type?; end
|
1742
|
-
def block_type?; end
|
1743
|
-
def blockarg_expr_type?; end
|
1744
|
-
def blockarg_type?; end
|
1745
|
-
|
1746
|
-
# @return [Boolean]
|
1747
|
-
def boolean_type?; end
|
1748
|
-
|
1749
|
-
def break_type?; end
|
1750
|
-
|
1751
|
-
# @return [Boolean]
|
1752
|
-
def call_type?; end
|
1753
|
-
|
1754
|
-
def case_match_type?; end
|
1755
|
-
def case_type?; end
|
1756
|
-
def casgn_type?; end
|
1757
|
-
def cbase_type?; end
|
1758
|
-
|
1759
|
-
# @return [Boolean]
|
1760
|
-
def chained?; end
|
1761
|
-
|
1762
|
-
def class_constructor?(param0 = T.unsafe(nil)); end
|
1763
|
-
def class_definition?(param0 = T.unsafe(nil)); end
|
1764
|
-
def class_type?; end
|
1765
|
-
def complete!; end
|
1766
|
-
|
1767
|
-
# @return [Boolean]
|
1768
|
-
def complete?; end
|
1769
|
-
|
1770
|
-
def complex_type?; end
|
1771
|
-
|
1772
|
-
# @return [Boolean]
|
1773
|
-
def conditional?; end
|
1774
|
-
|
1775
|
-
def const_name; end
|
1776
|
-
def const_pattern_type?; end
|
1777
|
-
def const_type?; end
|
1778
|
-
def csend_type?; end
|
1779
|
-
def cvar_type?; end
|
1780
|
-
def cvasgn_type?; end
|
1781
|
-
def def_type?; end
|
1782
|
-
def defined_module; end
|
1783
|
-
def defined_module_name; end
|
1784
|
-
def defined_type?; end
|
1785
|
-
def defs_type?; end
|
1786
|
-
def dstr_type?; end
|
1787
|
-
def dsym_type?; end
|
1788
|
-
|
1789
|
-
# Calls the given block for each ancestor node from parent to root.
|
1790
|
-
# If no block is given, an `Enumerator` is returned.
|
1791
|
-
#
|
1792
|
-
# @overload each_ancestor
|
1793
|
-
# @overload each_ancestor
|
1794
|
-
# @overload each_ancestor
|
1795
|
-
# @return [self] if a block is given
|
1796
|
-
# @return [Enumerator] if no block is given
|
1797
|
-
# @yieldparam node [Node] each ancestor node
|
1798
|
-
def each_ancestor(*types, &block); end
|
1799
|
-
|
1800
|
-
def eflipflop_type?; end
|
1801
|
-
def empty_else_type?; end
|
1802
|
-
|
1803
|
-
# @return [Boolean]
|
1804
|
-
def empty_source?; end
|
1805
|
-
|
1806
|
-
def ensure_type?; end
|
1807
|
-
|
1808
|
-
# @return [Boolean]
|
1809
|
-
def equals_asgn?; end
|
1810
|
-
|
1811
|
-
def erange_type?; end
|
1812
|
-
def false_type?; end
|
1813
|
-
|
1814
|
-
# @return [Boolean]
|
1815
|
-
def falsey_literal?; end
|
1816
|
-
|
1817
|
-
def find_pattern_type?; end
|
1818
|
-
def first_line; end
|
1819
|
-
def float_type?; end
|
1820
|
-
def for_type?; end
|
1821
|
-
def forward_arg_type?; end
|
1822
|
-
def forward_args_type?; end
|
1823
|
-
def forwarded_args_type?; end
|
1824
|
-
def global_const?(param0 = T.unsafe(nil), param1); end
|
1825
|
-
|
1826
|
-
# @return [Boolean]
|
1827
|
-
def guard_clause?; end
|
1828
|
-
|
1829
|
-
def gvar_type?; end
|
1830
|
-
def gvasgn_type?; end
|
1831
|
-
def hash_pattern_type?; end
|
1832
|
-
def hash_type?; end
|
1833
|
-
def ident_type?; end
|
1834
|
-
def if_guard_type?; end
|
1835
|
-
def if_type?; end
|
1836
|
-
def iflipflop_type?; end
|
1837
|
-
|
1838
|
-
# @return [Boolean]
|
1839
|
-
def immutable_literal?; end
|
1840
|
-
|
1841
|
-
def in_match_type?; end
|
1842
|
-
def in_pattern_type?; end
|
1843
|
-
def index_type?; end
|
1844
|
-
def indexasgn_type?; end
|
1845
|
-
def int_type?; end
|
1846
|
-
def irange_type?; end
|
1847
|
-
def ivar_type?; end
|
1848
|
-
def ivasgn_type?; end
|
1849
|
-
|
1850
|
-
# @return [Boolean]
|
1851
|
-
def keyword?; end
|
1852
|
-
|
1853
|
-
def kwarg_type?; end
|
1854
|
-
def kwargs_type?; end
|
1855
|
-
def kwbegin_type?; end
|
1856
|
-
def kwnilarg_type?; end
|
1857
|
-
def kwoptarg_type?; end
|
1858
|
-
def kwrestarg_type?; end
|
1859
|
-
def kwsplat_type?; end
|
1860
|
-
def lambda?(param0 = T.unsafe(nil)); end
|
1861
|
-
def lambda_or_proc?(param0 = T.unsafe(nil)); end
|
1862
|
-
def lambda_type?; end
|
1863
|
-
def last_line; end
|
1864
|
-
|
1865
|
-
# Use is discouraged, this is a potentially slow method and can lead
|
1866
|
-
# to even slower algorithms
|
1867
|
-
#
|
1868
|
-
# @return [Node, nil] the left (aka previous) sibling
|
1869
|
-
def left_sibling; end
|
1870
|
-
|
1871
|
-
# Use is discouraged, this is a potentially slow method and can lead
|
1872
|
-
# to even slower algorithms
|
1873
|
-
#
|
1874
|
-
# @return [Array<Node>] the left (aka previous) siblings
|
1875
|
-
def left_siblings; end
|
1876
|
-
|
1877
|
-
def line_count; end
|
1878
|
-
|
1879
|
-
# @return [Boolean]
|
1880
|
-
def literal?; end
|
1881
|
-
|
1882
|
-
# NOTE: `loop { }` is a normal method call and thus not a loop keyword.
|
1883
|
-
#
|
1884
|
-
# @return [Boolean]
|
1885
|
-
def loop_keyword?; end
|
1886
|
-
|
1887
|
-
def lvar_type?; end
|
1888
|
-
def lvasgn_type?; end
|
1889
|
-
def masgn_type?; end
|
1890
|
-
def match_alt_type?; end
|
1891
|
-
def match_as_type?; end
|
1892
|
-
def match_current_line_type?; end
|
1893
|
-
def match_guard_clause?(param0 = T.unsafe(nil)); end
|
1894
|
-
def match_nil_pattern_type?; end
|
1895
|
-
def match_pattern_p_type?; end
|
1896
|
-
def match_pattern_type?; end
|
1897
|
-
def match_rest_type?; end
|
1898
|
-
def match_var_type?; end
|
1899
|
-
def match_with_lvasgn_type?; end
|
1900
|
-
def match_with_trailing_comma_type?; end
|
1901
|
-
def mlhs_type?; end
|
1902
|
-
def module_definition?(param0 = T.unsafe(nil)); end
|
1903
|
-
def module_type?; end
|
1904
|
-
|
1905
|
-
# Predicates
|
1906
|
-
#
|
1907
|
-
# @return [Boolean]
|
1908
|
-
def multiline?; end
|
1909
|
-
|
1910
|
-
# @return [Boolean]
|
1911
|
-
def mutable_literal?; end
|
1912
|
-
|
1913
|
-
def new_class_or_module_block?(param0 = T.unsafe(nil)); end
|
1914
|
-
def next_type?; end
|
1915
|
-
def nil_type?; end
|
1916
|
-
|
1917
|
-
# Common destructuring method. This can be used to normalize
|
1918
|
-
# destructuring for different variations of the node.
|
1919
|
-
# Some node types override this with their own custom
|
1920
|
-
# destructuring method.
|
1921
|
-
#
|
1922
|
-
# @return [Array<Node>] the different parts of the ndde
|
1923
|
-
def node_parts; end
|
1924
|
-
|
1925
|
-
def nonempty_line_count; end
|
1926
|
-
def not_type?; end
|
1927
|
-
def nth_ref_type?; end
|
1928
|
-
def numargs_type?; end
|
1929
|
-
def numblock_type?; end
|
1930
|
-
|
1931
|
-
# @return [Boolean]
|
1932
|
-
def numeric_type?; end
|
1933
|
-
|
1934
|
-
def objc_kwarg_type?; end
|
1935
|
-
def objc_restarg_type?; end
|
1936
|
-
def objc_varargs_type?; end
|
1937
|
-
def op_asgn_type?; end
|
1938
|
-
|
1939
|
-
# @return [Boolean]
|
1940
|
-
def operator_keyword?; end
|
1941
|
-
|
1942
|
-
def optarg_type?; end
|
1943
|
-
def or_asgn_type?; end
|
1944
|
-
def or_type?; end
|
1945
|
-
def pair_type?; end
|
1946
|
-
|
1947
|
-
# Returns the parent node, or `nil` if the receiver is a root node.
|
1948
|
-
#
|
1949
|
-
# @return [Node, nil] the parent node or `nil`
|
1950
|
-
def parent; end
|
1951
|
-
|
1952
|
-
# @return [Boolean]
|
1953
|
-
def parent?; end
|
1954
|
-
|
1955
|
-
# Searching the AST
|
1956
|
-
def parent_module_name; end
|
1957
|
-
|
1958
|
-
# @return [Boolean]
|
1959
|
-
def parenthesized_call?; end
|
1960
|
-
|
1961
|
-
def pin_type?; end
|
1962
|
-
|
1963
|
-
# @return [Boolean]
|
1964
|
-
def post_condition_loop?; end
|
1965
|
-
|
1966
|
-
def postexe_type?; end
|
1967
|
-
def preexe_type?; end
|
1968
|
-
def proc?(param0 = T.unsafe(nil)); end
|
1969
|
-
def procarg0_type?; end
|
1970
|
-
|
1971
|
-
# Some expressions are evaluated for their value, some for their side
|
1972
|
-
# effects, and some for both.
|
1973
|
-
# If we know that expressions are useful only for their return values,
|
1974
|
-
# and have no side effects, that means we can reorder them, change the
|
1975
|
-
# number of times they are evaluated, or replace them with other
|
1976
|
-
# expressions which are equivalent in value.
|
1977
|
-
# So, is evaluation of this node free of side effects?
|
1978
|
-
#
|
1979
|
-
# @return [Boolean]
|
1980
|
-
def pure?; end
|
1981
|
-
|
1982
|
-
# @return [Boolean]
|
1983
|
-
def range_type?; end
|
1984
|
-
|
1985
|
-
def rational_type?; end
|
1986
|
-
def receiver(param0 = T.unsafe(nil)); end
|
1987
|
-
def recursive_basic_literal?; end
|
1988
|
-
def recursive_literal?; end
|
1989
|
-
def redo_type?; end
|
1990
|
-
|
1991
|
-
# @return [Boolean]
|
1992
|
-
def reference?; end
|
1993
|
-
|
1994
|
-
def regexp_type?; end
|
1995
|
-
def regopt_type?; end
|
1996
|
-
def resbody_type?; end
|
1997
|
-
def rescue_type?; end
|
1998
|
-
def restarg_expr_type?; end
|
1999
|
-
def restarg_type?; end
|
2000
|
-
def retry_type?; end
|
2001
|
-
def return_type?; end
|
2002
|
-
|
2003
|
-
# Use is discouraged, this is a potentially slow method and can lead
|
2004
|
-
# to even slower algorithms
|
2005
|
-
#
|
2006
|
-
# @return [Node, nil] the right (aka next) sibling
|
2007
|
-
def right_sibling; end
|
2008
|
-
|
2009
|
-
# Use is discouraged, this is a potentially slow method and can lead
|
2010
|
-
# to even slower algorithms
|
2011
|
-
#
|
2012
|
-
# @return [Array<Node>] the right (aka next) siblings
|
2013
|
-
def right_siblings; end
|
2014
|
-
|
2015
|
-
# @return [Boolean]
|
2016
|
-
def root?; end
|
2017
|
-
|
2018
|
-
def sclass_type?; end
|
2019
|
-
def self_type?; end
|
2020
|
-
def send_type?; end
|
2021
|
-
def shadowarg_type?; end
|
2022
|
-
|
2023
|
-
# @return [Boolean]
|
2024
|
-
def shorthand_asgn?; end
|
2025
|
-
|
2026
|
-
# Returns the index of the receiver node in its siblings. (Sibling index
|
2027
|
-
# uses zero based numbering.)
|
2028
|
-
# Use is discouraged, this is a potentially slow method.
|
2029
|
-
#
|
2030
|
-
# @return [Integer, nil] the index of the receiver node in its siblings
|
2031
|
-
def sibling_index; end
|
2032
|
-
|
2033
|
-
# @return [Boolean]
|
2034
|
-
def single_line?; end
|
2035
|
-
|
2036
|
-
# NOTE: Some rare nodes may have no source, like `s(:args)` in `foo {}`
|
2037
|
-
#
|
2038
|
-
# @return [String, nil]
|
2039
|
-
def source; end
|
2040
|
-
|
2041
|
-
def source_length; end
|
2042
|
-
def source_range; end
|
2043
|
-
|
2044
|
-
# @return [Boolean]
|
2045
|
-
def special_keyword?; end
|
2046
|
-
|
2047
|
-
def splat_type?; end
|
2048
|
-
def str_content(param0 = T.unsafe(nil)); end
|
2049
|
-
def str_type?; end
|
2050
|
-
|
2051
|
-
# @deprecated Use `:class_constructor?`
|
2052
|
-
def struct_constructor?(param0 = T.unsafe(nil)); end
|
2053
|
-
|
2054
|
-
def super_type?; end
|
2055
|
-
def sym_type?; end
|
2056
|
-
def true_type?; end
|
2057
|
-
|
2058
|
-
# @return [Boolean]
|
2059
|
-
def truthy_literal?; end
|
2060
|
-
|
2061
|
-
def undef_type?; end
|
2062
|
-
def unless_guard_type?; end
|
2063
|
-
def until_post_type?; end
|
2064
|
-
def until_type?; end
|
2065
|
-
|
2066
|
-
# Override `AST::Node#updated` so that `AST::Processor` does not try to
|
2067
|
-
# mutate our ASTs. Since we keep references from children to parents and
|
2068
|
-
# not just the other way around, we cannot update an AST and share
|
2069
|
-
# identical subtrees. Rather, the entire AST must be copied any time any
|
2070
|
-
# part of it is changed.
|
2071
|
-
def updated(type = T.unsafe(nil), children = T.unsafe(nil), properties = T.unsafe(nil)); end
|
2072
|
-
|
2073
|
-
# Some expressions are evaluated for their value, some for their side
|
2074
|
-
# effects, and some for both
|
2075
|
-
# If we know that an expression is useful only for its side effects, that
|
2076
|
-
# means we can transform it in ways which preserve the side effects, but
|
2077
|
-
# change the return value
|
2078
|
-
# So, does the return value of this node matter? If we changed it to
|
2079
|
-
# `(...; nil)`, might that affect anything?
|
2080
|
-
#
|
2081
|
-
#
|
2082
|
-
# @return [Boolean]
|
2083
|
-
def value_used?; end
|
2084
|
-
|
2085
|
-
# @return [Boolean]
|
2086
|
-
def variable?; end
|
2087
|
-
|
2088
|
-
def when_type?; end
|
2089
|
-
def while_post_type?; end
|
2090
|
-
def while_type?; end
|
2091
|
-
def xstr_type?; end
|
2092
|
-
def yield_type?; end
|
2093
|
-
def zsuper_type?; end
|
2094
|
-
|
2095
|
-
protected
|
2096
|
-
|
2097
|
-
def parent=(node); end
|
2098
|
-
|
2099
|
-
private
|
2100
|
-
|
2101
|
-
# @return [Boolean]
|
2102
|
-
def begin_value_used?; end
|
2103
|
-
|
2104
|
-
# @return [Boolean]
|
2105
|
-
def case_if_value_used?; end
|
2106
|
-
|
2107
|
-
def defined_module0(param0 = T.unsafe(nil)); end
|
2108
|
-
|
2109
|
-
# @return [Boolean]
|
2110
|
-
def for_value_used?; end
|
2111
|
-
|
2112
|
-
def parent_module_name_for_block(ancestor); end
|
2113
|
-
def parent_module_name_for_sclass(sclass_node); end
|
2114
|
-
def parent_module_name_part(node); end
|
2115
|
-
def visit_ancestors(types); end
|
2116
|
-
|
2117
|
-
# @return [Boolean]
|
2118
|
-
def while_until_value_used?; end
|
2119
|
-
end
|
2120
|
-
|
2121
|
-
# @api private
|
2122
|
-
RuboCop::AST::Node::ARGUMENT_TYPES = T.let(T.unsafe(nil), Set)
|
2123
|
-
|
2124
|
-
# @api private
|
2125
|
-
RuboCop::AST::Node::ASSIGNMENTS = T.let(T.unsafe(nil), Set)
|
2126
|
-
|
2127
|
-
# @api private
|
2128
|
-
RuboCop::AST::Node::BASIC_CONDITIONALS = T.let(T.unsafe(nil), Set)
|
2129
|
-
|
2130
|
-
# @api private
|
2131
|
-
RuboCop::AST::Node::BASIC_LITERALS = T.let(T.unsafe(nil), Set)
|
2132
|
-
|
2133
|
-
# <=> isn't included here, because it doesn't return a boolean.
|
2134
|
-
#
|
2135
|
-
# @api private
|
2136
|
-
RuboCop::AST::Node::COMPARISON_OPERATORS = T.let(T.unsafe(nil), Set)
|
2137
|
-
|
2138
|
-
# @api private
|
2139
|
-
RuboCop::AST::Node::COMPOSITE_LITERALS = T.let(T.unsafe(nil), Set)
|
2140
|
-
|
2141
|
-
# @api private
|
2142
|
-
RuboCop::AST::Node::CONDITIONALS = T.let(T.unsafe(nil), Set)
|
2143
|
-
|
2144
|
-
# @api private
|
2145
|
-
RuboCop::AST::Node::EQUALS_ASSIGNMENTS = T.let(T.unsafe(nil), Set)
|
2146
|
-
|
2147
|
-
# @api private
|
2148
|
-
RuboCop::AST::Node::FALSEY_LITERALS = T.let(T.unsafe(nil), Set)
|
2149
|
-
|
2150
|
-
# @api private
|
2151
|
-
RuboCop::AST::Node::IMMUTABLE_LITERALS = T.let(T.unsafe(nil), Set)
|
2152
|
-
|
2153
|
-
# @api private
|
2154
|
-
RuboCop::AST::Node::KEYWORDS = T.let(T.unsafe(nil), Set)
|
2155
|
-
|
2156
|
-
# @api private
|
2157
|
-
RuboCop::AST::Node::LITERALS = T.let(T.unsafe(nil), Set)
|
2158
|
-
|
2159
|
-
RuboCop::AST::Node::LITERAL_RECURSIVE_METHODS = T.let(T.unsafe(nil), Set)
|
2160
|
-
RuboCop::AST::Node::LITERAL_RECURSIVE_TYPES = T.let(T.unsafe(nil), Set)
|
2161
|
-
|
2162
|
-
# @api private
|
2163
|
-
RuboCop::AST::Node::LOOP_TYPES = T.let(T.unsafe(nil), Set)
|
2164
|
-
|
2165
|
-
# @api private
|
2166
|
-
RuboCop::AST::Node::MUTABLE_LITERALS = T.let(T.unsafe(nil), Set)
|
2167
|
-
|
2168
|
-
# @api private
|
2169
|
-
RuboCop::AST::Node::OPERATOR_KEYWORDS = T.let(T.unsafe(nil), Set)
|
2170
|
-
|
2171
|
-
# @api private
|
2172
|
-
RuboCop::AST::Node::POST_CONDITION_LOOP_TYPES = T.let(T.unsafe(nil), Set)
|
2173
|
-
|
2174
|
-
# @api private
|
2175
|
-
RuboCop::AST::Node::REFERENCES = T.let(T.unsafe(nil), Set)
|
2176
|
-
|
2177
|
-
# @api private
|
2178
|
-
RuboCop::AST::Node::SHORTHAND_ASSIGNMENTS = T.let(T.unsafe(nil), Set)
|
2179
|
-
|
2180
|
-
# @api private
|
2181
|
-
RuboCop::AST::Node::SPECIAL_KEYWORDS = T.let(T.unsafe(nil), Set)
|
2182
|
-
|
2183
|
-
# @api private
|
2184
|
-
RuboCop::AST::Node::TRUTHY_LITERALS = T.let(T.unsafe(nil), Set)
|
2185
|
-
|
2186
|
-
# @api private
|
2187
|
-
RuboCop::AST::Node::VARIABLES = T.let(T.unsafe(nil), Set)
|
2188
|
-
|
2189
|
-
# This class performs a pattern-matching operation on an AST node.
|
2190
|
-
#
|
2191
|
-
# Detailed syntax: /docs/modules/ROOT/pages/node_pattern.adoc
|
2192
|
-
#
|
2193
|
-
# Initialize a new `NodePattern` with `NodePattern.new(pattern_string)`, then
|
2194
|
-
# pass an AST node to `NodePattern#match`. Alternatively, use one of the class
|
2195
|
-
# macros in `NodePattern::Macros` to define your own pattern-matching method.
|
2196
|
-
#
|
2197
|
-
# If the match fails, `nil` will be returned. If the match succeeds, the
|
2198
|
-
# return value depends on whether a block was provided to `#match`, and
|
2199
|
-
# whether the pattern contained any "captures" (values which are extracted
|
2200
|
-
# from a matching AST.)
|
2201
|
-
#
|
2202
|
-
# - With block: #match yields the captures (if any) and passes the return
|
2203
|
-
# value of the block through.
|
2204
|
-
# - With no block, but one capture: the capture is returned.
|
2205
|
-
# - With no block, but multiple captures: captures are returned as an array.
|
2206
|
-
# - With no block and no captures: #match returns `true`.
|
2207
|
-
class RuboCop::AST::NodePattern
|
2208
|
-
include ::RuboCop::AST::NodePattern::MethodDefiner
|
2209
|
-
extend ::Forwardable
|
2210
|
-
|
2211
|
-
# @return [NodePattern] a new instance of NodePattern
|
2212
|
-
def initialize(str, compiler: T.unsafe(nil)); end
|
2213
|
-
|
2214
|
-
def ==(other); end
|
2215
|
-
def as_json(_options = T.unsafe(nil)); end
|
2216
|
-
|
2217
|
-
# Returns the value of attribute ast.
|
2218
|
-
def ast; end
|
2219
|
-
|
2220
|
-
def captures(*args, **_arg1, &block); end
|
2221
|
-
def encode_with(coder); end
|
2222
|
-
def eql?(other); end
|
2223
|
-
def freeze; end
|
2224
|
-
def init_with(coder); end
|
2225
|
-
def marshal_dump; end
|
2226
|
-
def marshal_load(pattern); end
|
2227
|
-
def match(*args, **rest, &block); end
|
2228
|
-
|
2229
|
-
# Returns the value of attribute match_code.
|
2230
|
-
def match_code; end
|
2231
|
-
|
2232
|
-
def named_parameters(*args, **_arg1, &block); end
|
2233
|
-
|
2234
|
-
# Returns the value of attribute pattern.
|
2235
|
-
def pattern; end
|
2236
|
-
|
2237
|
-
def positional_parameters(*args, **_arg1, &block); end
|
2238
|
-
def to_s; end
|
2239
|
-
|
2240
|
-
class << self
|
2241
|
-
# Yields its argument and any descendants, depth-first.
|
2242
|
-
#
|
2243
|
-
# @yield [element]
|
2244
|
-
def descend(element, &block); end
|
2245
|
-
end
|
2246
|
-
end
|
2247
|
-
|
2248
|
-
# Responsible to build the AST nodes for `NodePattern`
|
2249
|
-
#
|
2250
|
-
# Doc on how this fits in the compiling process:
|
2251
|
-
# /docs/modules/ROOT/pages/node_pattern.adoc
|
2252
|
-
class RuboCop::AST::NodePattern::Builder
|
2253
|
-
def emit_atom(type, value); end
|
2254
|
-
def emit_call(type, selector, args = T.unsafe(nil)); end
|
2255
|
-
def emit_capture(capture_token, node); end
|
2256
|
-
def emit_list(type, _begin, children, _end); end
|
2257
|
-
def emit_subsequence(node_list); end
|
2258
|
-
def emit_unary_op(type, _operator = T.unsafe(nil), *children); end
|
2259
|
-
def emit_union(begin_t, pattern_lists, end_t); end
|
2260
|
-
|
2261
|
-
private
|
2262
|
-
|
2263
|
-
def n(type, *args); end
|
2264
|
-
|
2265
|
-
# @return [Boolean]
|
2266
|
-
def optimizable_as_set?(children); end
|
2267
|
-
|
2268
|
-
def union_children(pattern_lists); end
|
2269
|
-
end
|
2270
|
-
|
2271
|
-
# A NodePattern comment, simplified version of ::Parser::Source::Comment
|
2272
|
-
class RuboCop::AST::NodePattern::Comment
|
2273
|
-
# @param range [Parser::Source::Range]
|
2274
|
-
# @return [Comment] a new instance of Comment
|
2275
|
-
def initialize(range); end
|
2276
|
-
|
2277
|
-
# Compares comments. Two comments are equal if they
|
2278
|
-
# correspond to the same source range.
|
2279
|
-
#
|
2280
|
-
# @param other [Object]
|
2281
|
-
# @return [Boolean]
|
2282
|
-
def ==(other); end
|
2283
|
-
|
2284
|
-
# @return [String] a human-readable representation of this comment
|
2285
|
-
def inspect; end
|
2286
|
-
|
2287
|
-
# Returns the value of attribute location.
|
2288
|
-
def loc; end
|
2289
|
-
|
2290
|
-
# Returns the value of attribute location.
|
2291
|
-
def location; end
|
2292
|
-
|
2293
|
-
# @return [String]
|
2294
|
-
def text; end
|
2295
|
-
end
|
2296
|
-
|
2297
|
-
# The top-level compiler holding the global state
|
2298
|
-
# Defers work to its subcompilers
|
2299
|
-
#
|
2300
|
-
# Doc on how this fits in the compiling process:
|
2301
|
-
# /docs/modules/ROOT/pages/node_pattern.adoc
|
2302
|
-
class RuboCop::AST::NodePattern::Compiler
|
2303
|
-
extend ::Forwardable
|
2304
|
-
|
2305
|
-
# @return [Compiler] a new instance of Compiler
|
2306
|
-
def initialize; end
|
2307
|
-
|
2308
|
-
def bind(*args, **_arg1, &block); end
|
2309
|
-
|
2310
|
-
# Returns the value of attribute binding.
|
2311
|
-
def binding; end
|
2312
|
-
|
2313
|
-
# Returns the value of attribute captures.
|
2314
|
-
def captures; end
|
2315
|
-
|
2316
|
-
def compile_as_atom(node); end
|
2317
|
-
def compile_as_node_pattern(node, **options); end
|
2318
|
-
def compile_sequence(sequence, var:); end
|
2319
|
-
|
2320
|
-
# Enumerates `enum` while keeping track of state across
|
2321
|
-
# union branches (captures and unification).
|
2322
|
-
def each_union(enum, &block); end
|
2323
|
-
|
2324
|
-
def freeze; end
|
2325
|
-
def named_parameter(name); end
|
2326
|
-
|
2327
|
-
# Returns the value of attribute named_parameters.
|
2328
|
-
def named_parameters; end
|
2329
|
-
|
2330
|
-
def next_capture; end
|
2331
|
-
def parser; end
|
2332
|
-
def positional_parameter(number); end
|
2333
|
-
|
2334
|
-
# Returns the value of attribute positional_parameters.
|
2335
|
-
def positional_parameters; end
|
2336
|
-
|
2337
|
-
# Utilities
|
2338
|
-
def with_temp_variables(*names, &block); end
|
2339
|
-
|
2340
|
-
private
|
2341
|
-
|
2342
|
-
def enforce_same_captures(enum); end
|
2343
|
-
def new_capture; end
|
2344
|
-
end
|
2345
|
-
|
2346
|
-
# Generates code that evaluates to a value (Ruby object)
|
2347
|
-
# This value responds to `===`.
|
2348
|
-
#
|
2349
|
-
# Doc on how this fits in the compiling process:
|
2350
|
-
# /docs/modules/ROOT/pages/node_pattern.adoc
|
2351
|
-
class RuboCop::AST::NodePattern::Compiler::AtomSubcompiler < ::RuboCop::AST::NodePattern::Compiler::Subcompiler
|
2352
|
-
private
|
2353
|
-
|
2354
|
-
def visit_const; end
|
2355
|
-
def visit_named_parameter; end
|
2356
|
-
def visit_number; end
|
2357
|
-
|
2358
|
-
# Assumes other types are node patterns.
|
2359
|
-
def visit_other_type; end
|
2360
|
-
|
2361
|
-
def visit_positional_parameter; end
|
2362
|
-
def visit_regexp; end
|
2363
|
-
def visit_set; end
|
2364
|
-
def visit_string; end
|
2365
|
-
def visit_symbol; end
|
2366
|
-
def visit_unify; end
|
2367
|
-
end
|
2368
|
-
|
2369
|
-
# Holds the list of bound variable names
|
2370
|
-
class RuboCop::AST::NodePattern::Compiler::Binding
|
2371
|
-
# @return [Binding] a new instance of Binding
|
2372
|
-
def initialize; end
|
2373
|
-
|
2374
|
-
# Yields the first time a given name is bound
|
2375
|
-
#
|
2376
|
-
# @return [String] bound variable name
|
2377
|
-
def bind(name); end
|
2378
|
-
|
2379
|
-
def union_bind(enum); end
|
2380
|
-
|
2381
|
-
private
|
2382
|
-
|
2383
|
-
def forbid(names); end
|
2384
|
-
end
|
2385
|
-
|
2386
|
-
# Variant of the Compiler with tracing information for nodes
|
2387
|
-
class RuboCop::AST::NodePattern::Compiler::Debug < ::RuboCop::AST::NodePattern::Compiler
|
2388
|
-
# @return [Debug] a new instance of Debug
|
2389
|
-
def initialize; end
|
2390
|
-
|
2391
|
-
def comments(*args, **_arg1, &block); end
|
2392
|
-
def named_parameters; end
|
2393
|
-
|
2394
|
-
# Returns the value of attribute node_ids.
|
2395
|
-
def node_ids; end
|
2396
|
-
|
2397
|
-
def parser; end
|
2398
|
-
def tokens(*args, **_arg1, &block); end
|
2399
|
-
end
|
2400
|
-
|
2401
|
-
# @api private
|
2402
|
-
class RuboCop::AST::NodePattern::Compiler::Debug::Colorizer
|
2403
|
-
# @api private
|
2404
|
-
# @return [Colorizer] a new instance of Colorizer
|
2405
|
-
def initialize(pattern, compiler: T.unsafe(nil)); end
|
2406
|
-
|
2407
|
-
# @api private
|
2408
|
-
def compiler; end
|
2409
|
-
|
2410
|
-
# @api private
|
2411
|
-
def node_pattern; end
|
2412
|
-
|
2413
|
-
# @api private
|
2414
|
-
def pattern; end
|
2415
|
-
|
2416
|
-
# @api private
|
2417
|
-
# @return [Node] the Ruby AST
|
2418
|
-
def test(ruby, trace: T.unsafe(nil)); end
|
2419
|
-
|
2420
|
-
private
|
2421
|
-
|
2422
|
-
# @api private
|
2423
|
-
def ruby_ast(ruby); end
|
2424
|
-
|
2425
|
-
# @api private
|
2426
|
-
def ruby_parser; end
|
2427
|
-
end
|
2428
|
-
|
2429
|
-
# @api private
|
2430
|
-
RuboCop::AST::NodePattern::Compiler::Debug::Colorizer::COLOR_SCHEME = T.let(T.unsafe(nil), Hash)
|
2431
|
-
|
2432
|
-
# @api private
|
2433
|
-
RuboCop::AST::NodePattern::Compiler::Debug::Colorizer::Compiler = RuboCop::AST::NodePattern::Compiler::Debug
|
2434
|
-
|
2435
|
-
# Result of a NodePattern run against a particular AST
|
2436
|
-
# Consider constructor is private
|
2437
|
-
#
|
2438
|
-
# @api private
|
2439
|
-
class RuboCop::AST::NodePattern::Compiler::Debug::Colorizer::Result < ::Struct
|
2440
|
-
# @api private
|
2441
|
-
# @return [Hash] a map for {character_position => color}
|
2442
|
-
def color_map(color_scheme = T.unsafe(nil)); end
|
2443
|
-
|
2444
|
-
# @api private
|
2445
|
-
# @return [String] a Rainbow colorized version of ruby
|
2446
|
-
def colorize(color_scheme = T.unsafe(nil)); end
|
2447
|
-
|
2448
|
-
# Returns the value of attribute colorizer
|
2449
|
-
#
|
2450
|
-
# @return [Object] the current value of colorizer
|
2451
|
-
def colorizer; end
|
2452
|
-
|
2453
|
-
# Sets the attribute colorizer
|
2454
|
-
#
|
2455
|
-
# @param value [Object] the value to set the attribute colorizer to.
|
2456
|
-
# @return [Object] the newly set value
|
2457
|
-
def colorizer=(_); end
|
2458
|
-
|
2459
|
-
# @api private
|
2460
|
-
# @return [Hash] a map for {node => matched?}, depth-first
|
2461
|
-
def match_map; end
|
2462
|
-
|
2463
|
-
# @api private
|
2464
|
-
# @return [Boolean] a value of `Trace#matched?` or `:not_visitable`
|
2465
|
-
def matched?(node); end
|
2466
|
-
|
2467
|
-
# Returns the value of attribute returned
|
2468
|
-
#
|
2469
|
-
# @return [Object] the current value of returned
|
2470
|
-
def returned; end
|
2471
|
-
|
2472
|
-
# Sets the attribute returned
|
2473
|
-
#
|
2474
|
-
# @param value [Object] the value to set the attribute returned to.
|
2475
|
-
# @return [Object] the newly set value
|
2476
|
-
def returned=(_); end
|
2477
|
-
|
2478
|
-
# Returns the value of attribute ruby_ast
|
2479
|
-
#
|
2480
|
-
# @return [Object] the current value of ruby_ast
|
2481
|
-
def ruby_ast; end
|
2482
|
-
|
2483
|
-
# Sets the attribute ruby_ast
|
2484
|
-
#
|
2485
|
-
# @param value [Object] the value to set the attribute ruby_ast to.
|
2486
|
-
# @return [Object] the newly set value
|
2487
|
-
def ruby_ast=(_); end
|
2488
|
-
|
2489
|
-
# Returns the value of attribute trace
|
2490
|
-
#
|
2491
|
-
# @return [Object] the current value of trace
|
2492
|
-
def trace; end
|
2493
|
-
|
2494
|
-
# Sets the attribute trace
|
2495
|
-
#
|
2496
|
-
# @param value [Object] the value to set the attribute trace to.
|
2497
|
-
# @return [Object] the newly set value
|
2498
|
-
def trace=(_); end
|
2499
|
-
|
2500
|
-
private
|
2501
|
-
|
2502
|
-
# @api private
|
2503
|
-
def ast; end
|
2504
|
-
|
2505
|
-
# @api private
|
2506
|
-
def color_map_for(node, color); end
|
2507
|
-
|
2508
|
-
class << self
|
2509
|
-
def [](*_arg0); end
|
2510
|
-
def inspect; end
|
2511
|
-
def keyword_init?; end
|
2512
|
-
def members; end
|
2513
|
-
def new(*_arg0); end
|
2514
|
-
end
|
2515
|
-
end
|
2516
|
-
|
2517
|
-
# @api private
|
2518
|
-
module RuboCop::AST::NodePattern::Compiler::Debug::InstrumentationSubcompiler
|
2519
|
-
# @api private
|
2520
|
-
def do_compile; end
|
2521
|
-
|
2522
|
-
private
|
2523
|
-
|
2524
|
-
# @api private
|
2525
|
-
def node_id; end
|
2526
|
-
|
2527
|
-
# @api private
|
2528
|
-
def tracer(kind); end
|
2529
|
-
end
|
2530
|
-
|
2531
|
-
# @api private
|
2532
|
-
class RuboCop::AST::NodePattern::Compiler::Debug::NodePatternSubcompiler < ::RuboCop::AST::NodePattern::Compiler::NodePatternSubcompiler
|
2533
|
-
include ::RuboCop::AST::NodePattern::Compiler::Debug::InstrumentationSubcompiler
|
2534
|
-
end
|
2535
|
-
|
2536
|
-
# @api private
|
2537
|
-
class RuboCop::AST::NodePattern::Compiler::Debug::SequenceSubcompiler < ::RuboCop::AST::NodePattern::Compiler::SequenceSubcompiler
|
2538
|
-
include ::RuboCop::AST::NodePattern::Compiler::Debug::InstrumentationSubcompiler
|
2539
|
-
end
|
2540
|
-
|
2541
|
-
# Compiled node pattern requires a named parameter `trace`,
|
2542
|
-
# which should be an instance of this class
|
2543
|
-
class RuboCop::AST::NodePattern::Compiler::Debug::Trace
|
2544
|
-
# @return [Trace] a new instance of Trace
|
2545
|
-
def initialize; end
|
2546
|
-
|
2547
|
-
def enter(node_id); end
|
2548
|
-
|
2549
|
-
# return nil (not visited), false (not matched) or true (matched)
|
2550
|
-
#
|
2551
|
-
# @return [Boolean]
|
2552
|
-
def matched?(node_id); end
|
2553
|
-
|
2554
|
-
def success(node_id); end
|
2555
|
-
end
|
2556
|
-
|
2557
|
-
# Compiles code that evalues to true or false
|
2558
|
-
# for a given value `var` (typically a RuboCop::AST::Node)
|
2559
|
-
# or it's `node.type` if `seq_head` is true
|
2560
|
-
#
|
2561
|
-
# Doc on how this fits in the compiling process:
|
2562
|
-
# /docs/modules/ROOT/pages/node_pattern.adoc
|
2563
|
-
class RuboCop::AST::NodePattern::Compiler::NodePatternSubcompiler < ::RuboCop::AST::NodePattern::Compiler::Subcompiler
|
2564
|
-
# @return [NodePatternSubcompiler] a new instance of NodePatternSubcompiler
|
2565
|
-
def initialize(compiler, var: T.unsafe(nil), access: T.unsafe(nil), seq_head: T.unsafe(nil)); end
|
2566
|
-
|
2567
|
-
# Returns the value of attribute access.
|
2568
|
-
def access; end
|
2569
|
-
|
2570
|
-
# Returns the value of attribute seq_head.
|
2571
|
-
def seq_head; end
|
2572
|
-
|
2573
|
-
private
|
2574
|
-
|
2575
|
-
def access_element; end
|
2576
|
-
def access_node; end
|
2577
|
-
|
2578
|
-
# @param [Array<Node>, nil]
|
2579
|
-
# @return [String, nil]
|
2580
|
-
def compile_args(arg_list, first: T.unsafe(nil)); end
|
2581
|
-
|
2582
|
-
def compile_guard_clause; end
|
2583
|
-
|
2584
|
-
# Compiling helpers
|
2585
|
-
def compile_value_match(value); end
|
2586
|
-
|
2587
|
-
def multiple_access(kind); end
|
2588
|
-
def visit_ascend; end
|
2589
|
-
def visit_capture; end
|
2590
|
-
def visit_descend; end
|
2591
|
-
def visit_function_call; end
|
2592
|
-
def visit_intersection; end
|
2593
|
-
def visit_negation; end
|
2594
|
-
def visit_node_type; end
|
2595
|
-
|
2596
|
-
# Assumes other types are atoms.
|
2597
|
-
def visit_other_type; end
|
2598
|
-
|
2599
|
-
def visit_predicate; end
|
2600
|
-
def visit_sequence; end
|
2601
|
-
def visit_unify; end
|
2602
|
-
|
2603
|
-
# Lists
|
2604
|
-
def visit_union; end
|
2605
|
-
|
2606
|
-
def visit_wildcard; end
|
2607
|
-
end
|
2608
|
-
|
2609
|
-
# Compiles terms within a sequence to code that evalues to true or false.
|
2610
|
-
# Compilation of the nodes that can match only a single term is deferred to
|
2611
|
-
# `NodePatternSubcompiler`; only nodes that can match multiple terms are
|
2612
|
-
# compiled here.
|
2613
|
-
# Assumes the given `var` is a `::RuboCop::AST::Node`
|
2614
|
-
#
|
2615
|
-
# Doc on how this fits in the compiling process:
|
2616
|
-
# /docs/modules/ROOT/pages/node_pattern.adoc
|
2617
|
-
#
|
2618
|
-
class RuboCop::AST::NodePattern::Compiler::SequenceSubcompiler < ::RuboCop::AST::NodePattern::Compiler::Subcompiler
|
2619
|
-
# Calls `compile_sequence`; the actual `compile` method
|
2620
|
-
# will be used for the different terms of the sequence.
|
2621
|
-
# The only case of re-entrant call to `compile` is `visit_capture`
|
2622
|
-
#
|
2623
|
-
# @return [SequenceSubcompiler] a new instance of SequenceSubcompiler
|
2624
|
-
def initialize(compiler, sequence:, var:); end
|
2625
|
-
|
2626
|
-
def compile_sequence; end
|
2627
|
-
|
2628
|
-
# @api private
|
2629
|
-
def in_sync; end
|
2630
|
-
|
2631
|
-
protected
|
2632
|
-
|
2633
|
-
def compile_terms(children = T.unsafe(nil), last_arity = T.unsafe(nil)); end
|
2634
|
-
|
2635
|
-
# @api private
|
2636
|
-
def cur_index; end
|
2637
|
-
|
2638
|
-
# yield `sync_code` iff not already in sync
|
2639
|
-
#
|
2640
|
-
# @yield [code]
|
2641
|
-
def sync; end
|
2642
|
-
|
2643
|
-
private
|
2644
|
-
|
2645
|
-
# Compilation helpers
|
2646
|
-
def compile_and_advance(term); end
|
2647
|
-
|
2648
|
-
def compile_any_order_branches(matched_var); end
|
2649
|
-
|
2650
|
-
# @return [Array<String>] Else code, and init code (if any)
|
2651
|
-
def compile_any_order_else; end
|
2652
|
-
|
2653
|
-
def compile_captured_repetition(child_code, child_captures); end
|
2654
|
-
def compile_case(when_branches, else_code); end
|
2655
|
-
def compile_child_nb_guard(arity_range); end
|
2656
|
-
def compile_cur_index; end
|
2657
|
-
def compile_index(cur = T.unsafe(nil)); end
|
2658
|
-
def compile_loop(term); end
|
2659
|
-
def compile_loop_advance(to = T.unsafe(nil)); end
|
2660
|
-
|
2661
|
-
# Assumes `@cur_index` is already updated
|
2662
|
-
def compile_matched(kind); end
|
2663
|
-
|
2664
|
-
def compile_max_matched; end
|
2665
|
-
|
2666
|
-
# @return [String] code that evaluates to `false` if the matched arity is too small
|
2667
|
-
def compile_min_check; end
|
2668
|
-
|
2669
|
-
def compile_remaining; end
|
2670
|
-
|
2671
|
-
# @return [Hash] of {subcompiler => code}
|
2672
|
-
def compile_union_forks; end
|
2673
|
-
|
2674
|
-
def empty_loop; end
|
2675
|
-
def handle_prev; end
|
2676
|
-
|
2677
|
-
# Modifies in place `forks`
|
2678
|
-
# Syncs our state
|
2679
|
-
def merge_forks!(forks); end
|
2680
|
-
|
2681
|
-
# Modifies in place `forks` to insure that `cur_{child|index}_var` are ok
|
2682
|
-
def preserve_union_start(forks); end
|
2683
|
-
|
2684
|
-
# E.g. For sequence `(_ _? <_ _>)`, arities are: 1, 0..1, 2
|
2685
|
-
# and remaining arities are: 3..4, 2..3, 2..2, 0..0
|
2686
|
-
#
|
2687
|
-
# @return [Array<Range>] total arities (as Ranges) of remaining children nodes
|
2688
|
-
def remaining_arities(children, last_arity); end
|
2689
|
-
|
2690
|
-
# returns truthy iff `@cur_index` switched to relative from end mode (i.e. < 0)
|
2691
|
-
def use_index_from_end; end
|
2692
|
-
|
2693
|
-
def visit_any_order; end
|
2694
|
-
def visit_capture; end
|
2695
|
-
|
2696
|
-
# Single node patterns are all handled here
|
2697
|
-
def visit_other_type; end
|
2698
|
-
|
2699
|
-
def visit_repetition; end
|
2700
|
-
def visit_rest; end
|
2701
|
-
def visit_union; end
|
2702
|
-
|
2703
|
-
# NOTE: assumes `@cur_index != :seq_head`. Node types using `within_loop` must
|
2704
|
-
# have `def in_sequence_head; :raise; end`
|
2705
|
-
def within_loop; end
|
2706
|
-
end
|
2707
|
-
|
2708
|
-
RuboCop::AST::NodePattern::Compiler::SequenceSubcompiler::DELTA = T.let(T.unsafe(nil), Integer)
|
2709
|
-
RuboCop::AST::NodePattern::Compiler::SequenceSubcompiler::POSITIVE = T.let(T.unsafe(nil), Proc)
|
2710
|
-
|
2711
|
-
# Base class for subcompilers
|
2712
|
-
# Implements visitor pattern
|
2713
|
-
#
|
2714
|
-
# Doc on how this fits in the compiling process:
|
2715
|
-
# /docs/modules/ROOT/pages/node_pattern.adoc
|
2716
|
-
class RuboCop::AST::NodePattern::Compiler::Subcompiler
|
2717
|
-
# @return [Subcompiler] a new instance of Subcompiler
|
2718
|
-
def initialize(compiler); end
|
2719
|
-
|
2720
|
-
def compile(node); end
|
2721
|
-
|
2722
|
-
# Returns the value of attribute compiler.
|
2723
|
-
def compiler; end
|
2724
|
-
|
2725
|
-
private
|
2726
|
-
|
2727
|
-
def do_compile; end
|
2728
|
-
|
2729
|
-
# Returns the value of attribute node.
|
2730
|
-
def node; end
|
2731
|
-
|
2732
|
-
class << self
|
2733
|
-
# @private
|
2734
|
-
def inherited(base); end
|
2735
|
-
|
2736
|
-
# @private
|
2737
|
-
def method_added(method); end
|
2738
|
-
|
2739
|
-
# Returns the value of attribute registry.
|
2740
|
-
def registry; end
|
2741
|
-
end
|
2742
|
-
end
|
2743
|
-
|
2744
|
-
class RuboCop::AST::NodePattern::Invalid < ::StandardError; end
|
2745
|
-
|
2746
|
-
# Lexer class for `NodePattern`
|
2747
|
-
#
|
2748
|
-
# Doc on how this fits in the compiling process:
|
2749
|
-
# /docs/modules/ROOT/pages/node_pattern.adoc
|
2750
|
-
class RuboCop::AST::NodePattern::Lexer < ::RuboCop::AST::NodePattern::LexerRex
|
2751
|
-
# @return [Lexer] a new instance of Lexer
|
2752
|
-
def initialize(source); end
|
2753
|
-
|
2754
|
-
# Returns the value of attribute comments.
|
2755
|
-
def comments; end
|
2756
|
-
|
2757
|
-
# Returns the value of attribute source_buffer.
|
2758
|
-
def source_buffer; end
|
2759
|
-
|
2760
|
-
# Returns the value of attribute tokens.
|
2761
|
-
def tokens; end
|
2762
|
-
|
2763
|
-
private
|
2764
|
-
|
2765
|
-
def do_parse; end
|
2766
|
-
|
2767
|
-
# @return [token]
|
2768
|
-
def emit(type); end
|
2769
|
-
|
2770
|
-
def emit_comment; end
|
2771
|
-
def emit_regexp; end
|
2772
|
-
def token(type, value); end
|
2773
|
-
end
|
2774
|
-
|
2775
|
-
RuboCop::AST::NodePattern::Lexer::Error = RuboCop::AST::NodePattern::LexerRex::ScanError
|
2776
|
-
RuboCop::AST::NodePattern::Lexer::REGEXP_OPTIONS = T.let(T.unsafe(nil), Hash)
|
2777
|
-
|
2778
|
-
# The generated lexer RuboCop::AST::NodePattern::LexerRex
|
2779
|
-
class RuboCop::AST::NodePattern::LexerRex
|
2780
|
-
# Yields on the current action.
|
2781
|
-
def action; end
|
2782
|
-
|
2783
|
-
# The file name / path
|
2784
|
-
def filename; end
|
2785
|
-
|
2786
|
-
# The file name / path
|
2787
|
-
def filename=(_arg0); end
|
2788
|
-
|
2789
|
-
# The current location in the parse.
|
2790
|
-
def location; end
|
2791
|
-
|
2792
|
-
# The StringScanner for this lexer.
|
2793
|
-
def match; end
|
2794
|
-
|
2795
|
-
# The match groups for the current scan.
|
2796
|
-
def matches; end
|
2797
|
-
|
2798
|
-
# Lex the next token.
|
2799
|
-
def next_token; end
|
2800
|
-
|
2801
|
-
# Parse the given string.
|
2802
|
-
def parse(str); end
|
2803
|
-
|
2804
|
-
# Read in and parse the file at +path+.
|
2805
|
-
def parse_file(path); end
|
2806
|
-
|
2807
|
-
# The current scanner class. Must be overridden in subclasses.
|
2808
|
-
def scanner_class; end
|
2809
|
-
|
2810
|
-
# The StringScanner for this lexer.
|
2811
|
-
def ss; end
|
2812
|
-
|
2813
|
-
# The StringScanner for this lexer.
|
2814
|
-
def ss=(_arg0); end
|
2815
|
-
|
2816
|
-
# The current lexical state.
|
2817
|
-
def state; end
|
2818
|
-
|
2819
|
-
# The current lexical state.
|
2820
|
-
def state=(_arg0); end
|
2821
|
-
end
|
2822
|
-
|
2823
|
-
RuboCop::AST::NodePattern::LexerRex::CALL = T.let(T.unsafe(nil), Regexp)
|
2824
|
-
|
2825
|
-
# :stopdoc:
|
2826
|
-
RuboCop::AST::NodePattern::LexerRex::CONST_NAME = T.let(T.unsafe(nil), Regexp)
|
2827
|
-
|
2828
|
-
RuboCop::AST::NodePattern::LexerRex::IDENTIFIER = T.let(T.unsafe(nil), Regexp)
|
2829
|
-
|
2830
|
-
# :startdoc:
|
2831
|
-
# :stopdoc:
|
2832
|
-
class RuboCop::AST::NodePattern::LexerRex::LexerError < ::StandardError; end
|
2833
|
-
|
2834
|
-
RuboCop::AST::NodePattern::LexerRex::NODE_TYPE = T.let(T.unsafe(nil), Regexp)
|
2835
|
-
RuboCop::AST::NodePattern::LexerRex::REGEXP = T.let(T.unsafe(nil), Regexp)
|
2836
|
-
RuboCop::AST::NodePattern::LexerRex::REGEXP_BODY = T.let(T.unsafe(nil), Regexp)
|
2837
|
-
RuboCop::AST::NodePattern::LexerRex::SYMBOL_NAME = T.let(T.unsafe(nil), Regexp)
|
2838
|
-
class RuboCop::AST::NodePattern::LexerRex::ScanError < ::RuboCop::AST::NodePattern::LexerRex::LexerError; end
|
2839
|
-
|
2840
|
-
# Helpers for defining methods based on a pattern string
|
2841
|
-
module RuboCop::AST::NodePattern::Macros
|
2842
|
-
# Define a method which applies a pattern to an AST node
|
2843
|
-
#
|
2844
|
-
# The new method will return nil if the node does not match.
|
2845
|
-
# If the node matches, and a block is provided, the new method will
|
2846
|
-
# yield to the block (passing any captures as block arguments).
|
2847
|
-
# If the node matches, and no block is provided, the new method will
|
2848
|
-
# return the captures, or `true` if there were none.
|
2849
|
-
def def_node_matcher(method_name, pattern_str, **keyword_defaults); end
|
2850
|
-
|
2851
|
-
# Define a method which recurses over the descendants of an AST node,
|
2852
|
-
# checking whether any of them match the provided pattern
|
2853
|
-
#
|
2854
|
-
# If the method name ends with '?', the new method will return `true`
|
2855
|
-
# as soon as it finds a descendant which matches. Otherwise, it will
|
2856
|
-
# yield all descendants which match.
|
2857
|
-
def def_node_search(method_name, pattern_str, **keyword_defaults); end
|
2858
|
-
end
|
2859
|
-
|
2860
|
-
# Functionality to turn `match_code` into methods/lambda
|
2861
|
-
module RuboCop::AST::NodePattern::MethodDefiner
|
2862
|
-
def as_lambda; end
|
2863
|
-
def compile_as_lambda; end
|
2864
|
-
def def_node_matcher(base, method_name, **defaults); end
|
2865
|
-
def def_node_search(base, method_name, **defaults); end
|
2866
|
-
|
2867
|
-
private
|
2868
|
-
|
2869
|
-
def compile_init; end
|
2870
|
-
def def_helper(base, method_name, **defaults); end
|
2871
|
-
def emit_keyword_list(forwarding: T.unsafe(nil)); end
|
2872
|
-
def emit_lambda_code; end
|
2873
|
-
def emit_method_code; end
|
2874
|
-
def emit_node_search(method_name); end
|
2875
|
-
def emit_node_search_body(method_name, prelude:, on_match:); end
|
2876
|
-
def emit_param_list; end
|
2877
|
-
def emit_params(*first, forwarding: T.unsafe(nil)); end
|
2878
|
-
def emit_retval; end
|
2879
|
-
def emit_yield_capture(when_no_capture = T.unsafe(nil), yield_with: T.unsafe(nil)); end
|
2880
|
-
|
2881
|
-
# This method minimizes the closure for our method
|
2882
|
-
def wrapping_block(method_name, **defaults); end
|
2883
|
-
end
|
2884
|
-
|
2885
|
-
# Base class for AST Nodes of a `NodePattern`
|
2886
|
-
class RuboCop::AST::NodePattern::Node < ::Parser::AST::Node
|
2887
|
-
include ::RuboCop::AST::Descendence
|
2888
|
-
extend ::Forwardable
|
2889
|
-
|
2890
|
-
# Note: `arity.end` may be `Float::INFINITY`
|
2891
|
-
#
|
2892
|
-
# @return [Integer, Range] An Integer for fixed length terms, otherwise a Range.
|
2893
|
-
def arity; end
|
2894
|
-
|
2895
|
-
# @return [Range] arity as a Range
|
2896
|
-
def arity_range; end
|
2897
|
-
|
2898
|
-
# @return [Boolean]
|
2899
|
-
def capture?; end
|
2900
|
-
|
2901
|
-
# @return [Node] most nodes have only one child
|
2902
|
-
def child; end
|
2903
|
-
|
2904
|
-
# @return [Array<Node>]
|
2905
|
-
def children_nodes; end
|
2906
|
-
|
2907
|
-
# @return [Array<Node>, nil] replace node with result, or `nil` if no change requested.
|
2908
|
-
def in_sequence_head; end
|
2909
|
-
|
2910
|
-
# that matches within a Set (e.g. `42`, `:sym` but not `/regexp/`)
|
2911
|
-
#
|
2912
|
-
# @return [Boolean] returns true for nodes having a Ruby literal equivalent
|
2913
|
-
def matches_within_set?; end
|
2914
|
-
|
2915
|
-
# @return [Integer] nb of captures of that node and its descendants
|
2916
|
-
def nb_captures; end
|
2917
|
-
|
2918
|
-
# To be overridden by subclasses
|
2919
|
-
#
|
2920
|
-
# @return [Boolean]
|
2921
|
-
def rest?; end
|
2922
|
-
|
2923
|
-
# @return [Boolean] returns whether it matches a variable number of elements
|
2924
|
-
def variadic?; end
|
2925
|
-
|
2926
|
-
def with(type: T.unsafe(nil), children: T.unsafe(nil), location: T.unsafe(nil)); end
|
2927
|
-
end
|
2928
|
-
|
2929
|
-
# Node class for `<int str ...>`
|
2930
|
-
class RuboCop::AST::NodePattern::Node::AnyOrder < ::RuboCop::AST::NodePattern::Node
|
2931
|
-
include ::RuboCop::AST::NodePattern::Node::ForbidInSeqHead
|
2932
|
-
|
2933
|
-
def arity; end
|
2934
|
-
|
2935
|
-
# @return [Boolean]
|
2936
|
-
def ends_with_rest?; end
|
2937
|
-
|
2938
|
-
def rest_node; end
|
2939
|
-
def term_nodes; end
|
2940
|
-
end
|
2941
|
-
|
2942
|
-
RuboCop::AST::NodePattern::Node::AnyOrder::ARITIES = T.let(T.unsafe(nil), Hash)
|
2943
|
-
|
2944
|
-
# Node class for `$something`
|
2945
|
-
class RuboCop::AST::NodePattern::Node::Capture < ::RuboCop::AST::NodePattern::Node
|
2946
|
-
def arity(*args, **_arg1, &block); end
|
2947
|
-
|
2948
|
-
# @return [Boolean]
|
2949
|
-
def capture?; end
|
2950
|
-
|
2951
|
-
def in_sequence_head; end
|
2952
|
-
def nb_captures; end
|
2953
|
-
def rest?(*args, **_arg1, &block); end
|
2954
|
-
end
|
2955
|
-
|
2956
|
-
module RuboCop::AST::NodePattern::Node::ForbidInSeqHead
|
2957
|
-
# @raise [NodePattern::Invalid]
|
2958
|
-
def in_sequence_head; end
|
2959
|
-
end
|
2960
|
-
|
2961
|
-
RuboCop::AST::NodePattern::Node::FunctionCall = RuboCop::AST::NodePattern::Node::Predicate
|
2962
|
-
RuboCop::AST::NodePattern::Node::INT_TO_RANGE = T.let(T.unsafe(nil), Hash)
|
2963
|
-
|
2964
|
-
# Registry
|
2965
|
-
RuboCop::AST::NodePattern::Node::MAP = T.let(T.unsafe(nil), Hash)
|
2966
|
-
|
2967
|
-
RuboCop::AST::NodePattern::Node::MATCHES_WITHIN_SET = T.let(T.unsafe(nil), Set)
|
2968
|
-
|
2969
|
-
# Node class for `predicate?(:arg, :list)`
|
2970
|
-
class RuboCop::AST::NodePattern::Node::Predicate < ::RuboCop::AST::NodePattern::Node
|
2971
|
-
def arg_list; end
|
2972
|
-
def method_name; end
|
2973
|
-
end
|
2974
|
-
|
2975
|
-
# Node class for `int+`
|
2976
|
-
class RuboCop::AST::NodePattern::Node::Repetition < ::RuboCop::AST::NodePattern::Node
|
2977
|
-
include ::RuboCop::AST::NodePattern::Node::ForbidInSeqHead
|
2978
|
-
|
2979
|
-
def arity; end
|
2980
|
-
def operator; end
|
2981
|
-
end
|
2982
|
-
|
2983
|
-
RuboCop::AST::NodePattern::Node::Repetition::ARITIES = T.let(T.unsafe(nil), Hash)
|
2984
|
-
|
2985
|
-
# Node class for `...`
|
2986
|
-
class RuboCop::AST::NodePattern::Node::Rest < ::RuboCop::AST::NodePattern::Node
|
2987
|
-
def arity; end
|
2988
|
-
def in_sequence_head; end
|
2989
|
-
|
2990
|
-
# @return [Boolean]
|
2991
|
-
def rest?; end
|
2992
|
-
end
|
2993
|
-
|
2994
|
-
RuboCop::AST::NodePattern::Node::Rest::ARITY = T.let(T.unsafe(nil), Range)
|
2995
|
-
|
2996
|
-
# Node class for `(type first second ...)`
|
2997
|
-
class RuboCop::AST::NodePattern::Node::Sequence < ::RuboCop::AST::NodePattern::Node
|
2998
|
-
include ::RuboCop::AST::NodePattern::Node::ForbidInSeqHead
|
2999
|
-
|
3000
|
-
# @return [Sequence] a new instance of Sequence
|
3001
|
-
def initialize(type, children = T.unsafe(nil), properties = T.unsafe(nil)); end
|
3002
|
-
end
|
3003
|
-
|
3004
|
-
# A list (potentially empty) of nodes; part of a Union
|
3005
|
-
class RuboCop::AST::NodePattern::Node::Subsequence < ::RuboCop::AST::NodePattern::Node
|
3006
|
-
include ::RuboCop::AST::NodePattern::Node::ForbidInSeqHead
|
3007
|
-
|
3008
|
-
def arity; end
|
3009
|
-
def in_sequence_head; end
|
3010
|
-
end
|
3011
|
-
|
3012
|
-
# Node class for `{ ... }`
|
3013
|
-
class RuboCop::AST::NodePattern::Node::Union < ::RuboCop::AST::NodePattern::Node
|
3014
|
-
def arity; end
|
3015
|
-
def in_sequence_head; end
|
3016
|
-
end
|
3017
|
-
|
3018
|
-
# Parser for NodePattern
|
3019
|
-
# Note: class reopened in `parser.racc`
|
3020
|
-
#
|
3021
|
-
# Doc on how this fits in the compiling process:
|
3022
|
-
# /docs/modules/ROOT/pages/node_pattern.adoc
|
3023
|
-
class RuboCop::AST::NodePattern::Parser < ::Racc::Parser
|
3024
|
-
extend ::Forwardable
|
3025
|
-
|
3026
|
-
# @return [Parser] a new instance of Parser
|
3027
|
-
def initialize(builder = T.unsafe(nil)); end
|
3028
|
-
|
3029
|
-
def _reduce_10(val, _values); end
|
3030
|
-
def _reduce_11(val, _values); end
|
3031
|
-
|
3032
|
-
# reduce 12 omitted
|
3033
|
-
def _reduce_13(val, _values); end
|
3034
|
-
|
3035
|
-
def _reduce_14(val, _values); end
|
3036
|
-
def _reduce_15(val, _values); end
|
3037
|
-
def _reduce_16(val, _values); end
|
3038
|
-
def _reduce_17(val, _values); end
|
3039
|
-
def _reduce_18(val, _values); end
|
3040
|
-
def _reduce_19(val, _values); end
|
3041
|
-
|
3042
|
-
# reduce 1 omitted
|
3043
|
-
def _reduce_2(val, _values); end
|
3044
|
-
|
3045
|
-
def _reduce_20(val, _values); end
|
3046
|
-
def _reduce_21(val, _values); end
|
3047
|
-
def _reduce_22(val, _values); end
|
3048
|
-
|
3049
|
-
# reduce 24 omitted
|
3050
|
-
def _reduce_25(val, _values); end
|
3051
|
-
|
3052
|
-
def _reduce_26(val, _values); end
|
3053
|
-
def _reduce_3(val, _values); end
|
3054
|
-
|
3055
|
-
# reduce 32 omitted
|
3056
|
-
def _reduce_33(val, _values); end
|
3057
|
-
|
3058
|
-
# reduce 36 omitted
|
3059
|
-
def _reduce_37(val, _values); end
|
3060
|
-
|
3061
|
-
def _reduce_38(val, _values); end
|
3062
|
-
def _reduce_39(val, _values); end
|
3063
|
-
def _reduce_4(val, _values); end
|
3064
|
-
def _reduce_40(val, _values); end
|
3065
|
-
def _reduce_41(val, _values); end
|
3066
|
-
def _reduce_42(val, _values); end
|
3067
|
-
def _reduce_43(val, _values); end
|
3068
|
-
def _reduce_44(val, _values); end
|
3069
|
-
def _reduce_45(val, _values); end
|
3070
|
-
def _reduce_46(val, _values); end
|
3071
|
-
def _reduce_5(val, _values); end
|
3072
|
-
def _reduce_6(val, _values); end
|
3073
|
-
def _reduce_7(val, _values); end
|
3074
|
-
def _reduce_8(val, _values); end
|
3075
|
-
def _reduce_9(val, _values); end
|
3076
|
-
def _reduce_none(val, _values); end
|
3077
|
-
def emit_atom(*args, **_arg1, &block); end
|
3078
|
-
def emit_call(*args, **_arg1, &block); end
|
3079
|
-
def emit_capture(*args, **_arg1, &block); end
|
3080
|
-
def emit_list(*args, **_arg1, &block); end
|
3081
|
-
def emit_unary_op(*args, **_arg1, &block); end
|
3082
|
-
def emit_union(*args, **_arg1, &block); end
|
3083
|
-
def inspect; end
|
3084
|
-
def next_token(*args, **_arg1, &block); end
|
3085
|
-
|
3086
|
-
# (Similar API to `parser` gem)
|
3087
|
-
# Parses a source and returns the AST.
|
3088
|
-
#
|
3089
|
-
# @param source_buffer [Parser::Source::Buffer, String] The source buffer to parse.
|
3090
|
-
# @return [NodePattern::Node]
|
3091
|
-
def parse(source); end
|
3092
|
-
|
3093
|
-
private
|
3094
|
-
|
3095
|
-
# @raise [NodePattern::Invalid]
|
3096
|
-
def enforce_unary(node); end
|
3097
|
-
|
3098
|
-
# Overrides Racc::Parser's method:
|
3099
|
-
#
|
3100
|
-
# @raise [NodePattern::Invalid]
|
3101
|
-
def on_error(token, val, _vstack); end
|
3102
|
-
end
|
3103
|
-
|
3104
|
-
RuboCop::AST::NodePattern::Parser::Builder = RuboCop::AST::NodePattern::Builder
|
3105
|
-
RuboCop::AST::NodePattern::Parser::Lexer = RuboCop::AST::NodePattern::Lexer
|
3106
|
-
RuboCop::AST::NodePattern::Parser::Racc_arg = T.let(T.unsafe(nil), Array)
|
3107
|
-
RuboCop::AST::NodePattern::Parser::Racc_token_to_s_table = T.let(T.unsafe(nil), Array)
|
3108
|
-
|
3109
|
-
# Overrides Parser to use `WithMeta` variants and provide additional methods
|
3110
|
-
class RuboCop::AST::NodePattern::Parser::WithMeta < ::RuboCop::AST::NodePattern::Parser
|
3111
|
-
# Returns the value of attribute comments.
|
3112
|
-
def comments; end
|
3113
|
-
|
3114
|
-
def do_parse; end
|
3115
|
-
|
3116
|
-
# Returns the value of attribute tokens.
|
3117
|
-
def tokens; end
|
3118
|
-
end
|
3119
|
-
|
3120
|
-
# Overrides Builder to emit nodes with locations
|
3121
|
-
class RuboCop::AST::NodePattern::Parser::WithMeta::Builder < ::RuboCop::AST::NodePattern::Builder
|
3122
|
-
def emit_atom(type, token); end
|
3123
|
-
def emit_call(type, selector_t, args = T.unsafe(nil)); end
|
3124
|
-
def emit_list(type, begin_t, children, end_t); end
|
3125
|
-
def emit_unary_op(type, operator_t = T.unsafe(nil), *children); end
|
3126
|
-
|
3127
|
-
private
|
3128
|
-
|
3129
|
-
def join_exprs(left_expr, right_expr); end
|
3130
|
-
def loc(token_or_range); end
|
3131
|
-
def n(type, children, source_map); end
|
3132
|
-
def source_map(token_or_range, begin_t: T.unsafe(nil), end_t: T.unsafe(nil), operator_t: T.unsafe(nil), selector_t: T.unsafe(nil)); end
|
3133
|
-
end
|
3134
|
-
|
3135
|
-
# Overrides Lexer to token locations and comments
|
3136
|
-
class RuboCop::AST::NodePattern::Parser::WithMeta::Lexer < ::RuboCop::AST::NodePattern::Lexer
|
3137
|
-
# @return [Lexer] a new instance of Lexer
|
3138
|
-
def initialize(str_or_buffer); end
|
3139
|
-
|
3140
|
-
def emit_comment; end
|
3141
|
-
|
3142
|
-
# @return [::Parser::Source::Range] last match's position
|
3143
|
-
def pos; end
|
3144
|
-
|
3145
|
-
# Returns the value of attribute source_buffer.
|
3146
|
-
def source_buffer; end
|
3147
|
-
|
3148
|
-
def token(type, value); end
|
3149
|
-
end
|
3150
|
-
|
3151
|
-
# Utility to assign a set of values to a constant
|
3152
|
-
module RuboCop::AST::NodePattern::Sets
|
3153
|
-
class << self
|
3154
|
-
def [](set); end
|
3155
|
-
def name(set); end
|
3156
|
-
def uniq(name); end
|
3157
|
-
end
|
3158
|
-
end
|
3159
|
-
|
3160
|
-
RuboCop::AST::NodePattern::Sets::MAX = T.let(T.unsafe(nil), Integer)
|
3161
|
-
RuboCop::AST::NodePattern::Sets::REGISTRY = T.let(T.unsafe(nil), Hash)
|
3162
|
-
RuboCop::AST::NodePattern::Sets::SET_0_1 = T.let(T.unsafe(nil), Set)
|
3163
|
-
RuboCop::AST::NodePattern::Sets::SET_10_10 = T.let(T.unsafe(nil), Set)
|
3164
|
-
RuboCop::AST::NodePattern::Sets::SET_1_1 = T.let(T.unsafe(nil), Set)
|
3165
|
-
RuboCop::AST::NodePattern::Sets::SET_ABSTRACT_OVERRIDE_OVERRIDABLE_ETC = T.let(T.unsafe(nil), Set)
|
3166
|
-
RuboCop::AST::NodePattern::Sets::SET_ADD_DEPENDENCY_ADD_RUNTIME_DEPENDENCY_ADD_DEVELOPMENT_DEPENDENCY = T.let(T.unsafe(nil), Set)
|
3167
|
-
RuboCop::AST::NodePattern::Sets::SET_ANY_ALL_NORETURN_ETC = T.let(T.unsafe(nil), Set)
|
3168
|
-
RuboCop::AST::NodePattern::Sets::SET_ATTR_READER_ATTR_WRITER_ATTR_ACCESSOR = T.let(T.unsafe(nil), Set)
|
3169
|
-
RuboCop::AST::NodePattern::Sets::SET_ATTR_READER_ATTR_WRITER_ATTR_ACCESSOR_ATTR = T.let(T.unsafe(nil), Set)
|
3170
|
-
RuboCop::AST::NodePattern::Sets::SET_BRANCH_REF_TAG = T.let(T.unsafe(nil), Set)
|
3171
|
-
RuboCop::AST::NodePattern::Sets::SET_CAPTURE2_CAPTURE2E_CAPTURE3_ETC = T.let(T.unsafe(nil), Set)
|
3172
|
-
RuboCop::AST::NodePattern::Sets::SET_CIPHER_DIGEST = T.let(T.unsafe(nil), Set)
|
3173
|
-
RuboCop::AST::NodePattern::Sets::SET_CLASS_EVAL_INSTANCE_EVAL = T.let(T.unsafe(nil), Set)
|
3174
|
-
RuboCop::AST::NodePattern::Sets::SET_CLASS_EVAL_MODULE_EVAL = T.let(T.unsafe(nil), Set)
|
3175
|
-
RuboCop::AST::NodePattern::Sets::SET_CLASS_MODULE = T.let(T.unsafe(nil), Set)
|
3176
|
-
RuboCop::AST::NodePattern::Sets::SET_CLASS_MODULE_STRUCT = T.let(T.unsafe(nil), Set)
|
3177
|
-
RuboCop::AST::NodePattern::Sets::SET_CONSTANTIZE_CONSTANTS_CONST_GET = T.let(T.unsafe(nil), Set)
|
3178
|
-
RuboCop::AST::NodePattern::Sets::SET_COUNT_LENGTH_SIZE = T.let(T.unsafe(nil), Set)
|
3179
|
-
RuboCop::AST::NodePattern::Sets::SET_DEFINE_METHOD = T.let(T.unsafe(nil), Set)
|
3180
|
-
RuboCop::AST::NodePattern::Sets::SET_DEFINE_METHOD_DEFINE_SINGLETON_METHOD = T.let(T.unsafe(nil), Set)
|
3181
|
-
RuboCop::AST::NodePattern::Sets::SET_EACH_WITH_INDEX_WITH_INDEX = T.let(T.unsafe(nil), Set)
|
3182
|
-
RuboCop::AST::NodePattern::Sets::SET_EACH_WITH_OBJECT_WITH_OBJECT = T.let(T.unsafe(nil), Set)
|
3183
|
-
RuboCop::AST::NodePattern::Sets::SET_ENUMERATOR_RATIONAL_COMPLEX_THREAD = T.let(T.unsafe(nil), Set)
|
3184
|
-
RuboCop::AST::NodePattern::Sets::SET_ESCAPE_ENCODE_UNESCAPE_DECODE = T.let(T.unsafe(nil), Set)
|
3185
|
-
RuboCop::AST::NodePattern::Sets::SET_EXIST_EXISTS = T.let(T.unsafe(nil), Set)
|
3186
|
-
RuboCop::AST::NodePattern::Sets::SET_FIRST_LAST__ETC = T.let(T.unsafe(nil), Set)
|
3187
|
-
RuboCop::AST::NodePattern::Sets::SET_FIXNUM_BIGNUM = T.let(T.unsafe(nil), Set)
|
3188
|
-
RuboCop::AST::NodePattern::Sets::SET_FORMAT_SPRINTF_PRINTF = T.let(T.unsafe(nil), Set)
|
3189
|
-
RuboCop::AST::NodePattern::Sets::SET_GSUB_GSUB = T.let(T.unsafe(nil), Set)
|
3190
|
-
RuboCop::AST::NodePattern::Sets::SET_INCLUDE_EXTEND_PREPEND = T.let(T.unsafe(nil), Set)
|
3191
|
-
RuboCop::AST::NodePattern::Sets::SET_INSTANCE_EVAL_CLASS_EVAL_MODULE_EVAL = T.let(T.unsafe(nil), Set)
|
3192
|
-
RuboCop::AST::NodePattern::Sets::SET_INSTANCE_EXEC_CLASS_EXEC_MODULE_EXEC = T.let(T.unsafe(nil), Set)
|
3193
|
-
RuboCop::AST::NodePattern::Sets::SET_KEYS_VALUES = T.let(T.unsafe(nil), Set)
|
3194
|
-
RuboCop::AST::NodePattern::Sets::SET_KEY_HAS_KEY_FETCH_ETC = T.let(T.unsafe(nil), Set)
|
3195
|
-
RuboCop::AST::NodePattern::Sets::SET_LAST_FIRST = T.let(T.unsafe(nil), Set)
|
3196
|
-
RuboCop::AST::NodePattern::Sets::SET_LENGTH_SIZE = T.let(T.unsafe(nil), Set)
|
3197
|
-
RuboCop::AST::NodePattern::Sets::SET_LOAD_RESTORE = T.let(T.unsafe(nil), Set)
|
3198
|
-
RuboCop::AST::NodePattern::Sets::SET_MAP_COLLECT = T.let(T.unsafe(nil), Set)
|
3199
|
-
RuboCop::AST::NodePattern::Sets::SET_NEW_ = T.let(T.unsafe(nil), Set)
|
3200
|
-
RuboCop::AST::NodePattern::Sets::SET_NEW_OPEN = T.let(T.unsafe(nil), Set)
|
3201
|
-
RuboCop::AST::NodePattern::Sets::SET_NIL_ = T.let(T.unsafe(nil), Set)
|
3202
|
-
RuboCop::AST::NodePattern::Sets::SET_PIPELINE_PIPELINE_R_PIPELINE_RW_ETC = T.let(T.unsafe(nil), Set)
|
3203
|
-
RuboCop::AST::NodePattern::Sets::SET_PRIVATE_PROTECTED = T.let(T.unsafe(nil), Set)
|
3204
|
-
RuboCop::AST::NodePattern::Sets::SET_PRIVATE_PROTECTED_PUBLIC = T.let(T.unsafe(nil), Set)
|
3205
|
-
RuboCop::AST::NodePattern::Sets::SET_PROP_CONST = T.let(T.unsafe(nil), Set)
|
3206
|
-
RuboCop::AST::NodePattern::Sets::SET_PUBLIC_CONSTANT_PRIVATE_CONSTANT = T.let(T.unsafe(nil), Set)
|
3207
|
-
RuboCop::AST::NodePattern::Sets::SET_PUBLIC_PROTECTED_PRIVATE_MODULE_FUNCTION = T.let(T.unsafe(nil), Set)
|
3208
|
-
RuboCop::AST::NodePattern::Sets::SET_RAISE_FAIL = T.let(T.unsafe(nil), Set)
|
3209
|
-
RuboCop::AST::NodePattern::Sets::SET_RAISE_FAIL_THROW_ETC = T.let(T.unsafe(nil), Set)
|
3210
|
-
RuboCop::AST::NodePattern::Sets::SET_REDUCE_INJECT = T.let(T.unsafe(nil), Set)
|
3211
|
-
RuboCop::AST::NodePattern::Sets::SET_REJECT_REJECT = T.let(T.unsafe(nil), Set)
|
3212
|
-
RuboCop::AST::NodePattern::Sets::SET_REQUIRE_REQUIRE_RELATIVE = T.let(T.unsafe(nil), Set)
|
3213
|
-
RuboCop::AST::NodePattern::Sets::SET_SELECT_SELECT = T.let(T.unsafe(nil), Set)
|
3214
|
-
RuboCop::AST::NodePattern::Sets::SET_SEND_PUBLIC_SEND___SEND__ = T.let(T.unsafe(nil), Set)
|
3215
|
-
RuboCop::AST::NodePattern::Sets::SET_SORT_BY_SORT = T.let(T.unsafe(nil), Set)
|
3216
|
-
RuboCop::AST::NodePattern::Sets::SET_SPAWN_SYSTEM = T.let(T.unsafe(nil), Set)
|
3217
|
-
RuboCop::AST::NodePattern::Sets::SET_SPRINTF_FORMAT = T.let(T.unsafe(nil), Set)
|
3218
|
-
RuboCop::AST::NodePattern::Sets::SET_STRUCT_CLASS = T.let(T.unsafe(nil), Set)
|
3219
|
-
RuboCop::AST::NodePattern::Sets::SET_SUCC_PRED_NEXT = T.let(T.unsafe(nil), Set)
|
3220
|
-
RuboCop::AST::NodePattern::Sets::SET_TASK_NAMESPACE = T.let(T.unsafe(nil), Set)
|
3221
|
-
RuboCop::AST::NodePattern::Sets::SET_TEMPFILE_STRINGIO = T.let(T.unsafe(nil), Set)
|
3222
|
-
RuboCop::AST::NodePattern::Sets::SET_TO_ENUM_ENUM_FOR = T.let(T.unsafe(nil), Set)
|
3223
|
-
RuboCop::AST::NodePattern::Sets::SET_TO_H_TO_HASH = T.let(T.unsafe(nil), Set)
|
3224
|
-
RuboCop::AST::NodePattern::Sets::SET_TO_I_TO_F_TO_C_TO_R = T.let(T.unsafe(nil), Set)
|
3225
|
-
RuboCop::AST::NodePattern::Sets::SET_TRUE_FALSE = T.let(T.unsafe(nil), Set)
|
3226
|
-
RuboCop::AST::NodePattern::Sets::SET_TYPE_TEMPLATE_TYPE_MEMBER = T.let(T.unsafe(nil), Set)
|
3227
|
-
RuboCop::AST::NodePattern::Sets::SET_ZERO_POSITIVE_NEGATIVE = T.let(T.unsafe(nil), Set)
|
3228
|
-
RuboCop::AST::NodePattern::Sets::SET__ = T.let(T.unsafe(nil), Set)
|
3229
|
-
RuboCop::AST::NodePattern::Sets::SET__AT_SLICE = T.let(T.unsafe(nil), Set)
|
3230
|
-
RuboCop::AST::NodePattern::Sets::SET__EQUAL_EQL = T.let(T.unsafe(nil), Set)
|
3231
|
-
RuboCop::AST::NodePattern::Sets::SET__FETCH = T.let(T.unsafe(nil), Set)
|
3232
|
-
RuboCop::AST::NodePattern::Sets::SET__GLOB = T.let(T.unsafe(nil), Set)
|
3233
|
-
RuboCop::AST::NodePattern::Sets::SET___ = T.let(T.unsafe(nil), Set)
|
3234
|
-
RuboCop::AST::NodePattern::Sets::SET___2 = T.let(T.unsafe(nil), Set)
|
3235
|
-
RuboCop::AST::NodePattern::Sets::SET___3 = T.let(T.unsafe(nil), Set)
|
3236
|
-
RuboCop::AST::NodePattern::Sets::SET___4 = T.let(T.unsafe(nil), Set)
|
3237
|
-
RuboCop::AST::NodePattern::Sets::SET___5 = T.let(T.unsafe(nil), Set)
|
3238
|
-
RuboCop::AST::NodePattern::Sets::SET___6 = T.let(T.unsafe(nil), Set)
|
3239
|
-
RuboCop::AST::NodePattern::Sets::SET___7 = T.let(T.unsafe(nil), Set)
|
3240
|
-
RuboCop::AST::NodePattern::Sets::SET___EQL = T.let(T.unsafe(nil), Set)
|
3241
|
-
RuboCop::AST::NodePattern::Sets::SET___METHOD_____CALLEE__ = T.let(T.unsafe(nil), Set)
|
3242
|
-
RuboCop::AST::NodePattern::Sets::SET____ = T.let(T.unsafe(nil), Set)
|
3243
|
-
RuboCop::AST::NodePattern::Sets::SET____ETC = T.let(T.unsafe(nil), Set)
|
3244
|
-
RuboCop::AST::NodePattern::Sets::SET____ETC_2 = T.let(T.unsafe(nil), Set)
|
3245
|
-
RuboCop::AST::NodePattern::Sets::SET____ETC_3 = T.let(T.unsafe(nil), Set)
|
3246
|
-
RuboCop::AST::NodePattern::Sets::SET_____2 = T.let(T.unsafe(nil), Set)
|
3247
|
-
RuboCop::AST::NodePattern::VAR = T.let(T.unsafe(nil), String)
|
3248
|
-
|
3249
|
-
# Common functionality for primitive numeric nodes: `int`, `float`, ...
|
3250
|
-
module RuboCop::AST::NumericNode
|
3251
|
-
# Checks whether this is literal has a sign.
|
3252
|
-
#
|
3253
|
-
# @example
|
3254
|
-
#
|
3255
|
-
# +42
|
3256
|
-
# @return [Boolean] whether this literal has a sign.
|
3257
|
-
def sign?; end
|
3258
|
-
end
|
3259
|
-
|
3260
|
-
RuboCop::AST::NumericNode::SIGN_REGEX = T.let(T.unsafe(nil), Regexp)
|
3261
|
-
|
3262
|
-
# A node extension for `op_asgn` nodes.
|
3263
|
-
# This will be used in place of a plain node when the builder constructs
|
3264
|
-
# the AST, making its methods available to all assignment nodes within RuboCop.
|
3265
|
-
class RuboCop::AST::OpAsgnNode < ::RuboCop::AST::Node
|
3266
|
-
# @return [AsgnNode] the assignment node
|
3267
|
-
def assignment_node; end
|
3268
|
-
|
3269
|
-
# The expression being assigned to the variable.
|
3270
|
-
#
|
3271
|
-
# @return [Node] the expression being assigned.
|
3272
|
-
def expression; end
|
3273
|
-
|
3274
|
-
# The name of the variable being assigned as a symbol.
|
3275
|
-
#
|
3276
|
-
# @return [Symbol] the name of the variable being assigned
|
3277
|
-
def name; end
|
3278
|
-
|
3279
|
-
# The operator being used for assignment as a symbol.
|
3280
|
-
#
|
3281
|
-
# @return [Symbol] the assignment operator
|
3282
|
-
def operator; end
|
3283
|
-
end
|
3284
|
-
|
3285
|
-
# A node extension for `op_asgn` nodes.
|
3286
|
-
# This will be used in place of a plain node when the builder constructs
|
3287
|
-
# the AST, making its methods available to all assignment nodes within RuboCop.
|
3288
|
-
class RuboCop::AST::OrAsgnNode < ::RuboCop::AST::OpAsgnNode
|
3289
|
-
# The operator being used for assignment as a symbol.
|
3290
|
-
#
|
3291
|
-
# @return [Symbol] the assignment operator
|
3292
|
-
def operator; end
|
3293
|
-
end
|
3294
|
-
|
3295
|
-
# A node extension for `or` nodes. This will be used in place of a plain
|
3296
|
-
# node when the builder constructs the AST, making its methods available
|
3297
|
-
# to all `or` nodes within RuboCop.
|
3298
|
-
class RuboCop::AST::OrNode < ::RuboCop::AST::Node
|
3299
|
-
include ::RuboCop::AST::BinaryOperatorNode
|
3300
|
-
include ::RuboCop::AST::PredicateOperatorNode
|
3301
|
-
|
3302
|
-
# Returns the alternate operator of the `or` as a string.
|
3303
|
-
# Returns `or` for `||` and vice versa.
|
3304
|
-
#
|
3305
|
-
# @return [String] the alternate of the `or` operator
|
3306
|
-
def alternate_operator; end
|
3307
|
-
|
3308
|
-
# Returns the inverse keyword of the `or` node as a string.
|
3309
|
-
# Returns `and` for `or` and `&&` for `||`.
|
3310
|
-
#
|
3311
|
-
# @return [String] the inverse of the `or` operator
|
3312
|
-
def inverse_operator; end
|
3313
|
-
end
|
3314
|
-
|
3315
|
-
# A node extension for `pair` nodes. This will be used in place of a plain
|
3316
|
-
# node when the builder constructs the AST, making its methods available
|
3317
|
-
# to all `pair` nodes within RuboCop.
|
3318
|
-
class RuboCop::AST::PairNode < ::RuboCop::AST::Node
|
3319
|
-
include ::RuboCop::AST::HashElementNode
|
3320
|
-
|
3321
|
-
# Checks whether the `pair` uses a colon delimiter.
|
3322
|
-
#
|
3323
|
-
# @return [Boolean] whether this `pair` uses a colon delimiter
|
3324
|
-
def colon?; end
|
3325
|
-
|
3326
|
-
# Returns the delimiter of the `pair` as a string. Returns `=>` for a
|
3327
|
-
# colon delimited `pair` and `:` for a hash rocket delimited `pair`.
|
3328
|
-
#
|
3329
|
-
# @param with_spacing [Boolean] whether to include spacing
|
3330
|
-
# @return [String] the delimiter of the `pair`
|
3331
|
-
def delimiter(*deprecated, with_spacing: T.unsafe(nil)); end
|
3332
|
-
|
3333
|
-
# Checks whether the `pair` uses a hash rocket delimiter.
|
3334
|
-
#
|
3335
|
-
# @return [Boolean] whether this `pair` uses a hash rocket delimiter
|
3336
|
-
def hash_rocket?; end
|
3337
|
-
|
3338
|
-
# Returns the inverse delimiter of the `pair` as a string.
|
3339
|
-
#
|
3340
|
-
# @param with_spacing [Boolean] whether to include spacing
|
3341
|
-
# @return [String] the inverse delimiter of the `pair`
|
3342
|
-
def inverse_delimiter(*deprecated, with_spacing: T.unsafe(nil)); end
|
3343
|
-
|
3344
|
-
# Checks whether the `pair` uses hash value omission.
|
3345
|
-
#
|
3346
|
-
# @return [Boolean] whether this `pair` uses hash value omission
|
3347
|
-
def value_omission?; end
|
3348
|
-
|
3349
|
-
# Checks whether the value starts on its own line.
|
3350
|
-
#
|
3351
|
-
# @return [Boolean] whether the value in the `pair` starts its own line
|
3352
|
-
def value_on_new_line?; end
|
3353
|
-
end
|
3354
|
-
|
3355
|
-
RuboCop::AST::PairNode::COLON = T.let(T.unsafe(nil), String)
|
3356
|
-
RuboCop::AST::PairNode::HASH_ROCKET = T.let(T.unsafe(nil), String)
|
3357
|
-
RuboCop::AST::PairNode::SPACED_COLON = T.let(T.unsafe(nil), String)
|
3358
|
-
RuboCop::AST::PairNode::SPACED_HASH_ROCKET = T.let(T.unsafe(nil), String)
|
3359
|
-
|
3360
|
-
# Requires implementing `arguments`.
|
3361
|
-
#
|
3362
|
-
# Common functionality for nodes that are parameterized:
|
3363
|
-
# `send`, `super`, `zsuper`, `def`, `defs`
|
3364
|
-
# and (modern only): `index`, `indexasgn`, `lambda`
|
3365
|
-
module RuboCop::AST::ParameterizedNode
|
3366
|
-
# Checks whether this node has any arguments.
|
3367
|
-
#
|
3368
|
-
# @return [Boolean] whether this node has any arguments
|
3369
|
-
def arguments?; end
|
3370
|
-
|
3371
|
-
# Whether the last argument of the node is a block pass,
|
3372
|
-
# i.e. `&block`.
|
3373
|
-
#
|
3374
|
-
# @return [Boolean] whether the last argument of the node is a block pass
|
3375
|
-
def block_argument?; end
|
3376
|
-
|
3377
|
-
# A shorthand for getting the first argument of the node.
|
3378
|
-
# Equivalent to `arguments.first`.
|
3379
|
-
#
|
3380
|
-
# @return [Node, nil] the first argument of the node,
|
3381
|
-
# or `nil` if there are no arguments
|
3382
|
-
def first_argument; end
|
3383
|
-
|
3384
|
-
# A shorthand for getting the last argument of the node.
|
3385
|
-
# Equivalent to `arguments.last`.
|
3386
|
-
#
|
3387
|
-
# @return [Node, nil] the last argument of the node,
|
3388
|
-
# or `nil` if there are no arguments
|
3389
|
-
def last_argument; end
|
3390
|
-
|
3391
|
-
# Checks whether this node's arguments are wrapped in parentheses.
|
3392
|
-
#
|
3393
|
-
# @return [Boolean] whether this node's arguments are
|
3394
|
-
# wrapped in parentheses
|
3395
|
-
def parenthesized?; end
|
3396
|
-
|
3397
|
-
# Checks whether any argument of the node is a splat
|
3398
|
-
# argument, i.e. `*splat`.
|
3399
|
-
#
|
3400
|
-
# @return [Boolean] whether the node is a splat argument
|
3401
|
-
def rest_argument?; end
|
3402
|
-
|
3403
|
-
# Checks whether any argument of the node is a splat
|
3404
|
-
# argument, i.e. `*splat`.
|
3405
|
-
#
|
3406
|
-
# @return [Boolean] whether the node is a splat argument
|
3407
|
-
def splat_argument?; end
|
3408
|
-
end
|
3409
|
-
|
3410
|
-
# A specialized `ParameterizedNode`.
|
3411
|
-
# Requires implementing `first_argument_index`
|
3412
|
-
# Implements `arguments` as `children[first_argument_index..-1]`
|
3413
|
-
# and optimizes other calls
|
3414
|
-
module RuboCop::AST::ParameterizedNode::RestArguments
|
3415
|
-
include ::RuboCop::AST::ParameterizedNode
|
3416
|
-
|
3417
|
-
# @return [Array<Node>] arguments, if any
|
3418
|
-
def arguments; end
|
3419
|
-
|
3420
|
-
# Checks whether this node has any arguments.
|
3421
|
-
#
|
3422
|
-
# @return [Boolean] whether this node has any arguments
|
3423
|
-
def arguments?; end
|
3424
|
-
|
3425
|
-
# A shorthand for getting the first argument of the node.
|
3426
|
-
# Equivalent to `arguments.first`.
|
3427
|
-
#
|
3428
|
-
# @return [Node, nil] the first argument of the node,
|
3429
|
-
# or `nil` if there are no arguments
|
3430
|
-
def first_argument; end
|
3431
|
-
|
3432
|
-
# A shorthand for getting the last argument of the node.
|
3433
|
-
# Equivalent to `arguments.last`.
|
3434
|
-
#
|
3435
|
-
# @return [Node, nil] the last argument of the node,
|
3436
|
-
# or `nil` if there are no arguments
|
3437
|
-
def last_argument; end
|
3438
|
-
end
|
3439
|
-
|
3440
|
-
# A specialized `ParameterizedNode` for node that have a single child
|
3441
|
-
# containing either `nil`, an argument, or a `begin` node with all the
|
3442
|
-
# arguments
|
3443
|
-
module RuboCop::AST::ParameterizedNode::WrappedArguments
|
3444
|
-
include ::RuboCop::AST::ParameterizedNode
|
3445
|
-
|
3446
|
-
# @return [Array] The arguments of the node.
|
3447
|
-
def arguments; end
|
3448
|
-
end
|
3449
|
-
|
3450
|
-
# Common functionality for nodes that are predicates:
|
3451
|
-
# `or`, `and` ...
|
3452
|
-
module RuboCop::AST::PredicateOperatorNode
|
3453
|
-
# Checks whether this is a logical operator.
|
3454
|
-
#
|
3455
|
-
# @return [Boolean] whether this is a logical operator
|
3456
|
-
def logical_operator?; end
|
3457
|
-
|
3458
|
-
# Returns the operator as a string.
|
3459
|
-
#
|
3460
|
-
# @return [String] the operator
|
3461
|
-
def operator; end
|
3462
|
-
|
3463
|
-
# Checks whether this is a semantic operator.
|
3464
|
-
#
|
3465
|
-
# @return [Boolean] whether this is a semantic operator
|
3466
|
-
def semantic_operator?; end
|
3467
|
-
end
|
3468
|
-
|
3469
|
-
RuboCop::AST::PredicateOperatorNode::LOGICAL_AND = T.let(T.unsafe(nil), String)
|
3470
|
-
RuboCop::AST::PredicateOperatorNode::LOGICAL_OR = T.let(T.unsafe(nil), String)
|
3471
|
-
RuboCop::AST::PredicateOperatorNode::SEMANTIC_AND = T.let(T.unsafe(nil), String)
|
3472
|
-
RuboCop::AST::PredicateOperatorNode::SEMANTIC_OR = T.let(T.unsafe(nil), String)
|
3473
|
-
|
3474
|
-
# A node extension for `procarg0` nodes.
|
3475
|
-
# This will be used in place of a plain node when the builder constructs
|
3476
|
-
# the AST, making its methods available to all `arg` nodes within RuboCop.
|
3477
|
-
class RuboCop::AST::Procarg0Node < ::RuboCop::AST::ArgNode
|
3478
|
-
# Returns the name of an argument.
|
3479
|
-
#
|
3480
|
-
# @return [Symbol, nil] the name of the argument
|
3481
|
-
def name; end
|
3482
|
-
end
|
3483
|
-
|
3484
|
-
# ProcessedSource contains objects which are generated by Parser
|
3485
|
-
# and other information such as disabled lines for cops.
|
3486
|
-
# It also provides a convenient way to access source lines.
|
3487
|
-
class RuboCop::AST::ProcessedSource
|
3488
|
-
include ::RuboCop::Ext::ProcessedSource
|
3489
|
-
|
3490
|
-
# @return [ProcessedSource] a new instance of ProcessedSource
|
3491
|
-
def initialize(source, ruby_version, path = T.unsafe(nil)); end
|
3492
|
-
|
3493
|
-
def [](*args); end
|
3494
|
-
|
3495
|
-
# Returns the value of attribute ast.
|
3496
|
-
def ast; end
|
3497
|
-
|
3498
|
-
def ast_with_comments; end
|
3499
|
-
|
3500
|
-
# @return [Boolean]
|
3501
|
-
def blank?; end
|
3502
|
-
|
3503
|
-
# Returns the value of attribute buffer.
|
3504
|
-
def buffer; end
|
3505
|
-
|
3506
|
-
# Raw source checksum for tracking infinite loops.
|
3507
|
-
def checksum; end
|
3508
|
-
|
3509
|
-
# @return [Comment, nil] the comment at that line, if any.
|
3510
|
-
def comment_at_line(line); end
|
3511
|
-
|
3512
|
-
# Consider using `each_comment_in_lines` instead
|
3513
|
-
#
|
3514
|
-
# @deprecated use contains_comment?
|
3515
|
-
# @return [Boolean] if any of the lines in the given `source_range` has a comment.
|
3516
|
-
def commented?(source_range); end
|
3517
|
-
|
3518
|
-
# Returns the value of attribute comments.
|
3519
|
-
def comments; end
|
3520
|
-
|
3521
|
-
# Should have been called `comments_before_or_at_line`. Doubtful it has of any valid use.
|
3522
|
-
#
|
3523
|
-
# @deprecated Use `each_comment_in_lines`
|
3524
|
-
def comments_before_line(line); end
|
3525
|
-
|
3526
|
-
# Consider using `each_comment_in_lines` instead
|
3527
|
-
#
|
3528
|
-
# @return [Boolean] if any of the lines in the given `source_range` has a comment.
|
3529
|
-
def contains_comment?(source_range); end
|
3530
|
-
|
3531
|
-
def current_line(token); end
|
3532
|
-
|
3533
|
-
# Returns the value of attribute diagnostics.
|
3534
|
-
def diagnostics; end
|
3535
|
-
|
3536
|
-
# @deprecated Use `comments.each`
|
3537
|
-
def each_comment(&block); end
|
3538
|
-
|
3539
|
-
# Enumerates on the comments contained with the given `line_range`
|
3540
|
-
def each_comment_in_lines(line_range); end
|
3541
|
-
|
3542
|
-
# @deprecated Use `tokens.each`
|
3543
|
-
def each_token(&block); end
|
3544
|
-
|
3545
|
-
def file_path; end
|
3546
|
-
|
3547
|
-
# @deprecated Use `comment_at_line`, `each_comment_in_lines`, or `comments.find`
|
3548
|
-
def find_comment(&block); end
|
3549
|
-
|
3550
|
-
# @deprecated Use `tokens.find`
|
3551
|
-
def find_token(&block); end
|
3552
|
-
|
3553
|
-
def first_token_of(range_or_node); end
|
3554
|
-
def following_line(token); end
|
3555
|
-
def last_token_of(range_or_node); end
|
3556
|
-
def line_indentation(line_number); end
|
3557
|
-
|
3558
|
-
# @return [Boolean] if the given line number has a comment.
|
3559
|
-
def line_with_comment?(line); end
|
3560
|
-
|
3561
|
-
# Returns the source lines, line break characters removed, excluding a
|
3562
|
-
# possible __END__ and everything that comes after.
|
3563
|
-
def lines; end
|
3564
|
-
|
3565
|
-
# Returns the value of attribute parser_error.
|
3566
|
-
def parser_error; end
|
3567
|
-
|
3568
|
-
# Returns the value of attribute path.
|
3569
|
-
def path; end
|
3570
|
-
|
3571
|
-
def preceding_line(token); end
|
3572
|
-
|
3573
|
-
# Returns the value of attribute raw_source.
|
3574
|
-
def raw_source; end
|
3575
|
-
|
3576
|
-
# Returns the value of attribute ruby_version.
|
3577
|
-
def ruby_version; end
|
3578
|
-
|
3579
|
-
# The tokens list is always sorted by token position, except for cases when heredoc
|
3580
|
-
# is passed as a method argument. In this case tokens are interleaved by
|
3581
|
-
# heredoc contents' tokens.
|
3582
|
-
def sorted_tokens; end
|
3583
|
-
|
3584
|
-
# @return [Boolean]
|
3585
|
-
def start_with?(string); end
|
3586
|
-
|
3587
|
-
# Returns the value of attribute tokens.
|
3588
|
-
def tokens; end
|
3589
|
-
|
3590
|
-
def tokens_within(range_or_node); end
|
3591
|
-
|
3592
|
-
# @return [Boolean]
|
3593
|
-
def valid_syntax?; end
|
3594
|
-
|
3595
|
-
private
|
3596
|
-
|
3597
|
-
def comment_index; end
|
3598
|
-
def create_parser(ruby_version); end
|
3599
|
-
def first_token_index(range_or_node); end
|
3600
|
-
def last_token_index(range_or_node); end
|
3601
|
-
def parse(source, ruby_version); end
|
3602
|
-
def parser_class(ruby_version); end
|
3603
|
-
def source_range(range_or_node); end
|
3604
|
-
def tokenize(parser); end
|
3605
|
-
|
3606
|
-
class << self
|
3607
|
-
def from_file(path, ruby_version); end
|
3608
|
-
end
|
3609
|
-
end
|
3610
|
-
|
3611
|
-
RuboCop::AST::ProcessedSource::INVALID_LEVELS = T.let(T.unsafe(nil), Array)
|
3612
|
-
|
3613
|
-
# @api private
|
3614
|
-
RuboCop::AST::ProcessedSource::STRING_SOURCE_NAME = T.let(T.unsafe(nil), String)
|
3615
|
-
|
3616
|
-
# A node extension for `irange` and `erange` nodes. This will be used in
|
3617
|
-
# place of a plain node when the builder constructs the AST, making its
|
3618
|
-
# methods available to all `irange` and `erange` nodes within RuboCop.
|
3619
|
-
class RuboCop::AST::RangeNode < ::RuboCop::AST::Node
|
3620
|
-
def begin; end
|
3621
|
-
def end; end
|
3622
|
-
end
|
3623
|
-
|
3624
|
-
# A node extension for `regexp` nodes. This will be used in place of a plain
|
3625
|
-
# node when the builder constructs the AST, making its methods available
|
3626
|
-
# to all `regexp` nodes within RuboCop.
|
3627
|
-
class RuboCop::AST::RegexpNode < ::RuboCop::AST::Node
|
3628
|
-
include ::RuboCop::Ext::RegexpNode
|
3629
|
-
|
3630
|
-
# @return [String] a string of regexp content
|
3631
|
-
def content; end
|
3632
|
-
|
3633
|
-
# @return [Bool] if char is one of the delimiters
|
3634
|
-
def delimiter?(char); end
|
3635
|
-
|
3636
|
-
# @return [String] the regexp delimiters (without %r)
|
3637
|
-
def delimiters; end
|
3638
|
-
|
3639
|
-
# @return [Bool] if regexp uses the extended regopt
|
3640
|
-
def extended?; end
|
3641
|
-
|
3642
|
-
# @return [Bool] if regexp uses the ignore-case regopt
|
3643
|
-
def ignore_case?; end
|
3644
|
-
|
3645
|
-
# @return [Bool] if regexp contains interpolation
|
3646
|
-
def interpolation?; end
|
3647
|
-
|
3648
|
-
# @return [Bool] if regexp uses the multiline regopt
|
3649
|
-
def multiline_mode?; end
|
3650
|
-
|
3651
|
-
# @return [Bool] if regexp uses the no-encoding regopt
|
3652
|
-
def no_encoding?; end
|
3653
|
-
|
3654
|
-
# NOTE: The 'o' option is ignored.
|
3655
|
-
#
|
3656
|
-
# @return [Integer] the Regexp option bits as returned by Regexp#options
|
3657
|
-
def options; end
|
3658
|
-
|
3659
|
-
# @return [Bool] if the regexp is a %r{...} literal (using any delimiters)
|
3660
|
-
def percent_r_literal?; end
|
3661
|
-
|
3662
|
-
# @return [RuboCop::AST::Node] a regopt node
|
3663
|
-
def regopt; end
|
3664
|
-
|
3665
|
-
# @return [Bool] if regexp uses the single-interpolation regopt
|
3666
|
-
def single_interpolation?; end
|
3667
|
-
|
3668
|
-
# @return [Bool] if the regexp is a /.../ literal
|
3669
|
-
def slash_literal?; end
|
3670
|
-
|
3671
|
-
# @return [Regexp] a regexp of this node
|
3672
|
-
def to_regexp; end
|
3673
|
-
|
3674
|
-
private
|
3675
|
-
|
3676
|
-
# @return [Boolean]
|
3677
|
-
def regopt_include?(option); end
|
3678
|
-
end
|
3679
|
-
|
3680
|
-
RuboCop::AST::RegexpNode::OPTIONS = T.let(T.unsafe(nil), Hash)
|
3681
|
-
|
3682
|
-
# A node extension for `resbody` nodes. This will be used in place of a
|
3683
|
-
# plain node when the builder constructs the AST, making its methods
|
3684
|
-
# available to all `resbody` nodes within RuboCop.
|
3685
|
-
class RuboCop::AST::ResbodyNode < ::RuboCop::AST::Node
|
3686
|
-
# Returns the body of the `rescue` clause.
|
3687
|
-
#
|
3688
|
-
# @return [Node, nil] The body of the `resbody`.
|
3689
|
-
def body; end
|
3690
|
-
|
3691
|
-
# Returns the index of the `resbody` branch within the exception handling statement.
|
3692
|
-
#
|
3693
|
-
# @return [Integer] the index of the `resbody` branch
|
3694
|
-
def branch_index; end
|
3695
|
-
|
3696
|
-
# Returns the exception variable of the `rescue` clause.
|
3697
|
-
#
|
3698
|
-
# @return [Node, nil] The exception variable of the `resbody`.
|
3699
|
-
def exception_variable; end
|
3700
|
-
|
3701
|
-
# Returns an array of all the exceptions in the `rescue` clause.
|
3702
|
-
#
|
3703
|
-
# @return [Array<Node>] an array of exception nodes
|
3704
|
-
def exceptions; end
|
3705
|
-
end
|
3706
|
-
|
3707
|
-
# A node extension for `rescue` nodes. This will be used in place of a
|
3708
|
-
# plain node when the builder constructs the AST, making its methods
|
3709
|
-
# available to all `rescue` nodes within RuboCop.
|
3710
|
-
class RuboCop::AST::RescueNode < ::RuboCop::AST::Node
|
3711
|
-
# Returns the body of the rescue node.
|
3712
|
-
#
|
3713
|
-
# @return [Node, nil] The body of the rescue node.
|
3714
|
-
def body; end
|
3715
|
-
|
3716
|
-
# Returns an array of all the rescue branches in the exception handling statement.
|
3717
|
-
#
|
3718
|
-
# and the else (if any). Note that these bodies could be nil.
|
3719
|
-
#
|
3720
|
-
# @return [Array<Node, nil>] an array of the bodies of the rescue branches
|
3721
|
-
def branches; end
|
3722
|
-
|
3723
|
-
# Checks whether this exception handling statement has an `else` branch.
|
3724
|
-
#
|
3725
|
-
# @return [Boolean] whether the exception handling statement has an `else` branch
|
3726
|
-
def else?; end
|
3727
|
-
|
3728
|
-
# Returns the else branch of the exception handling statement, if any.
|
3729
|
-
#
|
3730
|
-
# @return [Node] the else branch node of the exception handling statement
|
3731
|
-
# @return [nil] if the exception handling statement does not have an else branch.
|
3732
|
-
def else_branch; end
|
3733
|
-
|
3734
|
-
# Returns an array of all the rescue branches in the exception handling statement.
|
3735
|
-
#
|
3736
|
-
# @return [Array<ResbodyNode>] an array of `resbody` nodes
|
3737
|
-
def resbody_branches; end
|
3738
|
-
end
|
3739
|
-
|
3740
|
-
# A node extension for `return` nodes. This will be used in place of a
|
3741
|
-
# plain node when the builder constructs the AST, making its methods
|
3742
|
-
# available to all `return` nodes within RuboCop.
|
3743
|
-
class RuboCop::AST::ReturnNode < ::RuboCop::AST::Node
|
3744
|
-
include ::RuboCop::AST::ParameterizedNode
|
3745
|
-
include ::RuboCop::AST::ParameterizedNode::WrappedArguments
|
3746
|
-
end
|
3747
|
-
|
3748
|
-
# Responsible for compatibility with main gem
|
3749
|
-
#
|
3750
|
-
# @api private
|
3751
|
-
module RuboCop::AST::RuboCopCompatibility
|
3752
|
-
# @api private
|
3753
|
-
def rubocop_loaded; end
|
3754
|
-
end
|
3755
|
-
|
3756
|
-
# @api private
|
3757
|
-
RuboCop::AST::RuboCopCompatibility::INCOMPATIBLE_COPS = T.let(T.unsafe(nil), Hash)
|
3758
|
-
|
3759
|
-
# A node extension for `sclass` nodes. This will be used in place of a
|
3760
|
-
# plain node when the builder constructs the AST, making its methods
|
3761
|
-
# available to all `sclass` nodes within RuboCop.
|
3762
|
-
class RuboCop::AST::SelfClassNode < ::RuboCop::AST::Node
|
3763
|
-
# The body of this `sclass` node.
|
3764
|
-
#
|
3765
|
-
# @return [Node, nil] the body of the class
|
3766
|
-
def body; end
|
3767
|
-
|
3768
|
-
# The identifier for this `sclass` node. (Always `self`.)
|
3769
|
-
#
|
3770
|
-
# @return [Node] the identifier of the class
|
3771
|
-
def identifier; end
|
3772
|
-
end
|
3773
|
-
|
3774
|
-
# A node extension for `send` nodes. This will be used in place of a plain
|
3775
|
-
# node when the builder constructs the AST, making its methods available
|
3776
|
-
# to all `send` nodes within RuboCop.
|
3777
|
-
class RuboCop::AST::SendNode < ::RuboCop::AST::Node
|
3778
|
-
include ::RuboCop::AST::ParameterizedNode
|
3779
|
-
include ::RuboCop::AST::ParameterizedNode::RestArguments
|
3780
|
-
include ::RuboCop::AST::MethodIdentifierPredicates
|
3781
|
-
include ::RuboCop::AST::MethodDispatchNode
|
3782
|
-
|
3783
|
-
def attribute_accessor?(param0 = T.unsafe(nil)); end
|
3784
|
-
|
3785
|
-
private
|
3786
|
-
|
3787
|
-
def first_argument_index; end
|
3788
|
-
end
|
3789
|
-
|
3790
|
-
# This module provides a shorthand method to create a {Node} like
|
3791
|
-
# `Parser::AST::Sexp`.
|
3792
|
-
#
|
3793
|
-
# @see https://www.rubydoc.info/gems/ast/AST/Sexp
|
3794
|
-
module RuboCop::AST::Sexp
|
3795
|
-
# Creates a {Node} with type `type` and children `children`.
|
3796
|
-
def s(type, *children); end
|
3797
|
-
end
|
3798
|
-
|
3799
|
-
# A node extension for `str`, `dstr`, and `xstr` nodes. This will be used
|
3800
|
-
# in place of a plain node when the builder constructs the AST, making
|
3801
|
-
# its methods available to all `str` nodes within RuboCop.
|
3802
|
-
class RuboCop::AST::StrNode < ::RuboCop::AST::Node
|
3803
|
-
include ::RuboCop::AST::BasicLiteralNode
|
3804
|
-
|
3805
|
-
# @return [Boolean]
|
3806
|
-
def heredoc?; end
|
3807
|
-
end
|
3808
|
-
|
3809
|
-
# A node extension for `super`- and `zsuper` nodes. This will be used in
|
3810
|
-
# place of a plain node when the builder constructs the AST, making its
|
3811
|
-
# methods available to all `super`- and `zsuper` nodes within RuboCop.
|
3812
|
-
class RuboCop::AST::SuperNode < ::RuboCop::AST::Node
|
3813
|
-
include ::RuboCop::AST::ParameterizedNode
|
3814
|
-
include ::RuboCop::AST::MethodIdentifierPredicates
|
3815
|
-
include ::RuboCop::AST::MethodDispatchNode
|
3816
|
-
|
3817
|
-
def arguments; end
|
3818
|
-
|
3819
|
-
# Custom destructuring method. This can be used to normalize
|
3820
|
-
# destructuring for different variations of the node.
|
3821
|
-
#
|
3822
|
-
# @return [Array] the different parts of the `super` node
|
3823
|
-
def node_parts; end
|
3824
|
-
end
|
3825
|
-
|
3826
|
-
# A node extension for `sym` nodes. This will be used in place of a
|
3827
|
-
# plain node when the builder constructs the AST, making its methods
|
3828
|
-
# available to all `sym` nodes within RuboCop.
|
3829
|
-
class RuboCop::AST::SymbolNode < ::RuboCop::AST::Node
|
3830
|
-
include ::RuboCop::AST::BasicLiteralNode
|
3831
|
-
end
|
3832
|
-
|
3833
|
-
# A basic wrapper around Parser's tokens.
|
3834
|
-
class RuboCop::AST::Token
|
3835
|
-
# @return [Token] a new instance of Token
|
3836
|
-
def initialize(pos, type, text); end
|
3837
|
-
|
3838
|
-
def begin_pos; end
|
3839
|
-
def column; end
|
3840
|
-
|
3841
|
-
# @return [Boolean]
|
3842
|
-
def comma?; end
|
3843
|
-
|
3844
|
-
# Type Predicates
|
3845
|
-
#
|
3846
|
-
# @return [Boolean]
|
3847
|
-
def comment?; end
|
3848
|
-
|
3849
|
-
# @return [Boolean]
|
3850
|
-
def end?; end
|
3851
|
-
|
3852
|
-
def end_pos; end
|
3853
|
-
|
3854
|
-
# @return [Boolean]
|
3855
|
-
def equal_sign?; end
|
3856
|
-
|
3857
|
-
# @return [Boolean]
|
3858
|
-
def left_array_bracket?; end
|
3859
|
-
|
3860
|
-
# @return [Boolean]
|
3861
|
-
def left_brace?; end
|
3862
|
-
|
3863
|
-
# @return [Boolean]
|
3864
|
-
def left_bracket?; end
|
3865
|
-
|
3866
|
-
# @return [Boolean]
|
3867
|
-
def left_curly_brace?; end
|
3868
|
-
|
3869
|
-
# @return [Boolean]
|
3870
|
-
def left_parens?; end
|
3871
|
-
|
3872
|
-
# @return [Boolean]
|
3873
|
-
def left_ref_bracket?; end
|
3874
|
-
|
3875
|
-
def line; end
|
3876
|
-
|
3877
|
-
# Returns the value of attribute pos.
|
3878
|
-
def pos; end
|
3879
|
-
|
3880
|
-
# @return [Boolean]
|
3881
|
-
def rescue_modifier?; end
|
3882
|
-
|
3883
|
-
# @return [Boolean]
|
3884
|
-
def right_bracket?; end
|
3885
|
-
|
3886
|
-
# @return [Boolean]
|
3887
|
-
def right_curly_brace?; end
|
3888
|
-
|
3889
|
-
# @return [Boolean]
|
3890
|
-
def right_parens?; end
|
3891
|
-
|
3892
|
-
# @return [Boolean]
|
3893
|
-
def semicolon?; end
|
3894
|
-
|
3895
|
-
# Checks if there is whitespace after token
|
3896
|
-
#
|
3897
|
-
# @return [Boolean]
|
3898
|
-
def space_after?; end
|
3899
|
-
|
3900
|
-
# Checks if there is whitespace before token
|
3901
|
-
#
|
3902
|
-
# @return [Boolean]
|
3903
|
-
def space_before?; end
|
3904
|
-
|
3905
|
-
# Returns the value of attribute text.
|
3906
|
-
def text; end
|
3907
|
-
|
3908
|
-
def to_s; end
|
3909
|
-
|
3910
|
-
# Returns the value of attribute type.
|
3911
|
-
def type; end
|
3912
|
-
|
3913
|
-
class << self
|
3914
|
-
def from_parser_token(parser_token); end
|
3915
|
-
end
|
3916
|
-
end
|
3917
|
-
|
3918
|
-
# Provides methods for traversing an AST.
|
3919
|
-
# Does not transform an AST; for that, use Parser::AST::Processor.
|
3920
|
-
# Override methods to perform custom processing. Remember to call `super`
|
3921
|
-
# if you want to recursively process descendant nodes.
|
3922
|
-
module RuboCop::AST::Traversal
|
3923
|
-
extend ::RuboCop::AST::Traversal::CallbackCompiler
|
3924
|
-
|
3925
|
-
def on_(node); end
|
3926
|
-
def on___ENCODING__(node); end
|
3927
|
-
def on___FILE__(node); end
|
3928
|
-
def on___LINE__(node); end
|
3929
|
-
def on_alias(node); end
|
3930
|
-
def on_and(node); end
|
3931
|
-
def on_and_asgn(node); end
|
3932
|
-
def on_arg(node); end
|
3933
|
-
def on_arg_expr(node); end
|
3934
|
-
def on_args(node); end
|
3935
|
-
def on_array(node); end
|
3936
|
-
def on_array_pattern(node); end
|
3937
|
-
def on_array_pattern_with_tail(node); end
|
3938
|
-
def on_back_ref(node); end
|
3939
|
-
def on_begin(node); end
|
3940
|
-
def on_block(node); end
|
3941
|
-
def on_block_pass(node); end
|
3942
|
-
def on_blockarg(node); end
|
3943
|
-
def on_break(node); end
|
3944
|
-
def on_case(node); end
|
3945
|
-
def on_case_match(node); end
|
3946
|
-
def on_casgn(node); end
|
3947
|
-
def on_cbase(node); end
|
3948
|
-
def on_class(node); end
|
3949
|
-
def on_complex(node); end
|
3950
|
-
def on_const(node); end
|
3951
|
-
def on_const_pattern(node); end
|
3952
|
-
def on_csend(node); end
|
3953
|
-
def on_cvar(node); end
|
3954
|
-
def on_cvasgn(node); end
|
3955
|
-
def on_def(node); end
|
3956
|
-
def on_defined?(node); end
|
3957
|
-
def on_defs(node); end
|
3958
|
-
def on_dstr(node); end
|
3959
|
-
def on_dsym(node); end
|
3960
|
-
def on_eflipflop(node); end
|
3961
|
-
def on_empty_else(node); end
|
3962
|
-
def on_ensure(node); end
|
3963
|
-
def on_erange(node); end
|
3964
|
-
def on_false(node); end
|
3965
|
-
def on_find_pattern(node); end
|
3966
|
-
def on_float(node); end
|
3967
|
-
def on_for(node); end
|
3968
|
-
def on_forward_arg(node); end
|
3969
|
-
def on_forward_args(node); end
|
3970
|
-
def on_forwarded_args(node); end
|
3971
|
-
def on_gvar(node); end
|
3972
|
-
def on_gvasgn(node); end
|
3973
|
-
def on_hash(node); end
|
3974
|
-
def on_hash_pattern(node); end
|
3975
|
-
def on_if(node); end
|
3976
|
-
def on_if_guard(node); end
|
3977
|
-
def on_iflipflop(node); end
|
3978
|
-
def on_in_match(node); end
|
3979
|
-
def on_in_pattern(node); end
|
3980
|
-
def on_index(node); end
|
3981
|
-
def on_indexasgn(node); end
|
3982
|
-
def on_int(node); end
|
3983
|
-
def on_irange(node); end
|
3984
|
-
def on_ivar(node); end
|
3985
|
-
def on_ivasgn(node); end
|
3986
|
-
def on_kwarg(node); end
|
3987
|
-
def on_kwargs(node); end
|
3988
|
-
def on_kwbegin(node); end
|
3989
|
-
def on_kwnilarg(node); end
|
3990
|
-
def on_kwoptarg(node); end
|
3991
|
-
def on_kwrestarg(node); end
|
3992
|
-
def on_kwsplat(node); end
|
3993
|
-
def on_lambda(node); end
|
3994
|
-
def on_lvar(node); end
|
3995
|
-
def on_lvasgn(node); end
|
3996
|
-
def on_masgn(node); end
|
3997
|
-
def on_match_alt(node); end
|
3998
|
-
def on_match_as(node); end
|
3999
|
-
def on_match_current_line(node); end
|
4000
|
-
def on_match_nil_pattern(node); end
|
4001
|
-
def on_match_pattern(node); end
|
4002
|
-
def on_match_pattern_p(node); end
|
4003
|
-
def on_match_rest(node); end
|
4004
|
-
def on_match_var(node); end
|
4005
|
-
def on_match_with_lvasgn(node); end
|
4006
|
-
def on_match_with_trailing_comma(node); end
|
4007
|
-
def on_mlhs(node); end
|
4008
|
-
def on_module(node); end
|
4009
|
-
def on_mrasgn(node); end
|
4010
|
-
def on_next(node); end
|
4011
|
-
def on_nil(node); end
|
4012
|
-
def on_not(node); end
|
4013
|
-
def on_nth_ref(node); end
|
4014
|
-
def on_numblock(node); end
|
4015
|
-
def on_op_asgn(node); end
|
4016
|
-
def on_optarg(node); end
|
4017
|
-
def on_or(node); end
|
4018
|
-
def on_or_asgn(node); end
|
4019
|
-
def on_pair(node); end
|
4020
|
-
def on_pin(node); end
|
4021
|
-
def on_postexe(node); end
|
4022
|
-
def on_preexe(node); end
|
4023
|
-
def on_procarg0(node); end
|
4024
|
-
def on_rasgn(node); end
|
4025
|
-
def on_rational(node); end
|
4026
|
-
def on_redo(node); end
|
4027
|
-
def on_regexp(node); end
|
4028
|
-
def on_regopt(node); end
|
4029
|
-
def on_resbody(node); end
|
4030
|
-
def on_rescue(node); end
|
4031
|
-
def on_restarg(node); end
|
4032
|
-
def on_retry(node); end
|
4033
|
-
def on_return(node); end
|
4034
|
-
def on_sclass(node); end
|
4035
|
-
def on_self(node); end
|
4036
|
-
def on_send(node); end
|
4037
|
-
def on_shadowarg(node); end
|
4038
|
-
def on_splat(node); end
|
4039
|
-
def on_str(node); end
|
4040
|
-
def on_super(node); end
|
4041
|
-
def on_sym(node); end
|
4042
|
-
def on_true(node); end
|
4043
|
-
def on_undef(node); end
|
4044
|
-
def on_unless_guard(node); end
|
4045
|
-
def on_until(node); end
|
4046
|
-
def on_until_post(node); end
|
4047
|
-
def on_when(node); end
|
4048
|
-
def on_while(node); end
|
4049
|
-
def on_while_post(node); end
|
4050
|
-
def on_xstr(node); end
|
4051
|
-
def on_yield(node); end
|
4052
|
-
def on_zsuper(node); end
|
4053
|
-
def walk(node); end
|
4054
|
-
end
|
4055
|
-
|
4056
|
-
# @api private
|
4057
|
-
module RuboCop::AST::Traversal::CallbackCompiler
|
4058
|
-
# @api private
|
4059
|
-
def arity_check(range); end
|
4060
|
-
|
4061
|
-
# @api private
|
4062
|
-
def body(signature, prelude); end
|
4063
|
-
|
4064
|
-
# @api private
|
4065
|
-
def def_callback(type, *signature, arity: T.unsafe(nil), arity_check: T.unsafe(nil), body: T.unsafe(nil)); end
|
4066
|
-
end
|
4067
|
-
|
4068
|
-
# @api private
|
4069
|
-
RuboCop::AST::Traversal::CallbackCompiler::SEND = T.let(T.unsafe(nil), String)
|
4070
|
-
|
4071
|
-
# @api private
|
4072
|
-
RuboCop::AST::Traversal::CallbackCompiler::TEMPLATE = T.let(T.unsafe(nil), Hash)
|
4073
|
-
|
4074
|
-
# Only for debugging.
|
4075
|
-
#
|
4076
|
-
# @api private
|
4077
|
-
class RuboCop::AST::Traversal::DebugError < ::RuntimeError; end
|
4078
|
-
|
4079
|
-
RuboCop::AST::Traversal::NO_CHILD_NODES = T.let(T.unsafe(nil), Set)
|
4080
|
-
RuboCop::AST::Traversal::TYPE_TO_METHOD = T.let(T.unsafe(nil), Hash)
|
4081
|
-
|
4082
|
-
# A node extension for `until` nodes. This will be used in place of a plain
|
4083
|
-
# node when the builder constructs the AST, making its methods available
|
4084
|
-
# to all `until` nodes within RuboCop.
|
4085
|
-
class RuboCop::AST::UntilNode < ::RuboCop::AST::Node
|
4086
|
-
include ::RuboCop::AST::ConditionalNode
|
4087
|
-
include ::RuboCop::AST::ModifierNode
|
4088
|
-
|
4089
|
-
# Checks whether the `until` node has a `do` keyword.
|
4090
|
-
#
|
4091
|
-
# @return [Boolean] whether the `until` node has a `do` keyword
|
4092
|
-
def do?; end
|
4093
|
-
|
4094
|
-
# Returns the inverse keyword of the `until` node as a string.
|
4095
|
-
# Returns `while` for `until` nodes and vice versa.
|
4096
|
-
#
|
4097
|
-
# @return [String] the inverse keyword of the `until` statement
|
4098
|
-
def inverse_keyword; end
|
4099
|
-
|
4100
|
-
# Returns the keyword of the `until` statement as a string.
|
4101
|
-
#
|
4102
|
-
# @return [String] the keyword of the `until` statement
|
4103
|
-
def keyword; end
|
4104
|
-
end
|
4105
|
-
|
4106
|
-
module RuboCop::AST::Version; end
|
4107
|
-
RuboCop::AST::Version::STRING = T.let(T.unsafe(nil), String)
|
4108
|
-
|
4109
|
-
# A node extension for `when` nodes. This will be used in place of a plain
|
4110
|
-
# node when the builder constructs the AST, making its methods available
|
4111
|
-
# to all `when` nodes within RuboCop.
|
4112
|
-
class RuboCop::AST::WhenNode < ::RuboCop::AST::Node
|
4113
|
-
# Returns the body of the `when` node.
|
4114
|
-
#
|
4115
|
-
# @return [Node, nil] the body of the `when` node
|
4116
|
-
def body; end
|
4117
|
-
|
4118
|
-
# Returns the index of the `when` branch within the `case` statement.
|
4119
|
-
#
|
4120
|
-
# @return [Integer] the index of the `when` branch
|
4121
|
-
def branch_index; end
|
4122
|
-
|
4123
|
-
# Returns an array of all the conditions in the `when` branch.
|
4124
|
-
#
|
4125
|
-
# @return [Array<Node>] an array of condition nodes
|
4126
|
-
def conditions; end
|
4127
|
-
|
4128
|
-
# @deprecated Use `conditions.each`
|
4129
|
-
def each_condition(&block); end
|
4130
|
-
|
4131
|
-
# Checks whether the `when` node has a `then` keyword.
|
4132
|
-
#
|
4133
|
-
# @return [Boolean] whether the `when` node has a `then` keyword
|
4134
|
-
def then?; end
|
4135
|
-
end
|
4136
|
-
|
4137
|
-
# A node extension for `while` nodes. This will be used in place of a plain
|
4138
|
-
# node when the builder constructs the AST, making its methods available
|
4139
|
-
# to all `while` nodes within RuboCop.
|
4140
|
-
class RuboCop::AST::WhileNode < ::RuboCop::AST::Node
|
4141
|
-
include ::RuboCop::AST::ConditionalNode
|
4142
|
-
include ::RuboCop::AST::ModifierNode
|
4143
|
-
|
4144
|
-
# Checks whether the `until` node has a `do` keyword.
|
4145
|
-
#
|
4146
|
-
# @return [Boolean] whether the `until` node has a `do` keyword
|
4147
|
-
def do?; end
|
4148
|
-
|
4149
|
-
# Returns the inverse keyword of the `while` node as a string.
|
4150
|
-
# Returns `until` for `while` nodes and vice versa.
|
4151
|
-
#
|
4152
|
-
# @return [String] the inverse keyword of the `while` statement
|
4153
|
-
def inverse_keyword; end
|
4154
|
-
|
4155
|
-
# Returns the keyword of the `while` statement as a string.
|
4156
|
-
#
|
4157
|
-
# @return [String] the keyword of the `while` statement
|
4158
|
-
def keyword; end
|
4159
|
-
end
|
4160
|
-
|
4161
|
-
# A node extension for `yield` nodes. This will be used in place of a plain
|
4162
|
-
# node when the builder constructs the AST, making its methods available
|
4163
|
-
# to all `yield` nodes within RuboCop.
|
4164
|
-
class RuboCop::AST::YieldNode < ::RuboCop::AST::Node
|
4165
|
-
include ::RuboCop::AST::ParameterizedNode
|
4166
|
-
include ::RuboCop::AST::MethodIdentifierPredicates
|
4167
|
-
include ::RuboCop::AST::MethodDispatchNode
|
4168
|
-
|
4169
|
-
def arguments; end
|
4170
|
-
|
4171
|
-
# Custom destructuring method. This can be used to normalize
|
4172
|
-
# destructuring for different variations of the node.
|
4173
|
-
#
|
4174
|
-
# @return [Array] the different parts of the `send` node
|
4175
|
-
def node_parts; end
|
4176
|
-
end
|
4177
|
-
|
4178
|
-
RuboCop::NodePattern = RuboCop::AST::NodePattern
|
4179
|
-
RuboCop::ProcessedSource = RuboCop::AST::ProcessedSource
|
4180
|
-
RuboCop::Token = RuboCop::AST::Token
|