rubocop-ast 1.26.0 → 1.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rubocop/ast/builder.rb +71 -70
- data/lib/rubocop/ast/ext/range.rb +2 -2
- data/lib/rubocop/ast/node/keyword_splat_node.rb +10 -3
- data/lib/rubocop/ast/node_pattern/compiler/debug.rb +1 -1
- data/lib/rubocop/ast/node_pattern/node.rb +4 -0
- data/lib/rubocop/ast/node_pattern/with_meta.rb +3 -4
- data/lib/rubocop/ast/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52016862b66d8a632662c2a59a76713e02644e8f650bc8d845be3f0e00789ce6
|
4
|
+
data.tar.gz: '0837fef80b414ceb2282a2b61edeb45e4902063717b88367b9f37a2394b01570'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb2e878290bcbf536f69139eb3c678a74718e9f2b74f99afc90917d80b2f9787ed3a99b25c383623d2aa604fa5f4e75a61100b4728e604670019bdc4929459b3
|
7
|
+
data.tar.gz: 83fd6a5aead7d3e84b1d455eb2c6fb36704d60ec1f1ba4a0130e1b8d97591433ef56b2364ee0a161c32d227d69722d5775c42616cbeaba02cf14b18366021b83
|
data/lib/rubocop/ast/builder.rb
CHANGED
@@ -19,76 +19,77 @@ module RuboCop
|
|
19
19
|
|
20
20
|
# @api private
|
21
21
|
NODE_MAP = {
|
22
|
-
and:
|
23
|
-
and_asgn:
|
24
|
-
alias:
|
25
|
-
arg:
|
26
|
-
blockarg:
|
27
|
-
forward_arg:
|
28
|
-
kwarg:
|
29
|
-
kwoptarg:
|
30
|
-
kwrestarg:
|
31
|
-
optarg:
|
32
|
-
restarg:
|
33
|
-
shadowarg:
|
34
|
-
args:
|
35
|
-
array:
|
36
|
-
lvasgn:
|
37
|
-
ivasgn:
|
38
|
-
cvasgn:
|
39
|
-
gvasgn:
|
40
|
-
block:
|
41
|
-
numblock:
|
42
|
-
break:
|
43
|
-
case_match:
|
44
|
-
casgn:
|
45
|
-
case:
|
46
|
-
class:
|
47
|
-
const:
|
48
|
-
def:
|
49
|
-
defined?:
|
50
|
-
defs:
|
51
|
-
dstr:
|
52
|
-
ensure:
|
53
|
-
for:
|
54
|
-
forward_args:
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
22
|
+
and: AndNode,
|
23
|
+
and_asgn: AndAsgnNode,
|
24
|
+
alias: AliasNode,
|
25
|
+
arg: ArgNode,
|
26
|
+
blockarg: ArgNode,
|
27
|
+
forward_arg: ArgNode,
|
28
|
+
kwarg: ArgNode,
|
29
|
+
kwoptarg: ArgNode,
|
30
|
+
kwrestarg: ArgNode,
|
31
|
+
optarg: ArgNode,
|
32
|
+
restarg: ArgNode,
|
33
|
+
shadowarg: ArgNode,
|
34
|
+
args: ArgsNode,
|
35
|
+
array: ArrayNode,
|
36
|
+
lvasgn: AsgnNode,
|
37
|
+
ivasgn: AsgnNode,
|
38
|
+
cvasgn: AsgnNode,
|
39
|
+
gvasgn: AsgnNode,
|
40
|
+
block: BlockNode,
|
41
|
+
numblock: BlockNode,
|
42
|
+
break: BreakNode,
|
43
|
+
case_match: CaseMatchNode,
|
44
|
+
casgn: CasgnNode,
|
45
|
+
case: CaseNode,
|
46
|
+
class: ClassNode,
|
47
|
+
const: ConstNode,
|
48
|
+
def: DefNode,
|
49
|
+
defined?: DefinedNode,
|
50
|
+
defs: DefNode,
|
51
|
+
dstr: DstrNode,
|
52
|
+
ensure: EnsureNode,
|
53
|
+
for: ForNode,
|
54
|
+
forward_args: ForwardArgsNode,
|
55
|
+
forwarded_kwrestarg: KeywordSplatNode,
|
56
|
+
float: FloatNode,
|
57
|
+
hash: HashNode,
|
58
|
+
if: IfNode,
|
59
|
+
in_pattern: InPatternNode,
|
60
|
+
int: IntNode,
|
61
|
+
index: IndexNode,
|
62
|
+
indexasgn: IndexasgnNode,
|
63
|
+
irange: RangeNode,
|
64
|
+
erange: RangeNode,
|
65
|
+
kwargs: HashNode,
|
66
|
+
kwsplat: KeywordSplatNode,
|
67
|
+
lambda: LambdaNode,
|
68
|
+
module: ModuleNode,
|
69
|
+
next: NextNode,
|
70
|
+
op_asgn: OpAsgnNode,
|
71
|
+
or_asgn: OrAsgnNode,
|
72
|
+
or: OrNode,
|
73
|
+
pair: PairNode,
|
74
|
+
procarg0: Procarg0Node,
|
75
|
+
regexp: RegexpNode,
|
76
|
+
rescue: RescueNode,
|
77
|
+
resbody: ResbodyNode,
|
78
|
+
return: ReturnNode,
|
79
|
+
csend: CsendNode,
|
80
|
+
send: SendNode,
|
81
|
+
str: StrNode,
|
82
|
+
xstr: StrNode,
|
83
|
+
sclass: SelfClassNode,
|
84
|
+
super: SuperNode,
|
85
|
+
zsuper: SuperNode,
|
86
|
+
sym: SymbolNode,
|
87
|
+
until: UntilNode,
|
88
|
+
until_post: UntilNode,
|
89
|
+
when: WhenNode,
|
90
|
+
while: WhileNode,
|
91
|
+
while_post: WhileNode,
|
92
|
+
yield: YieldNode
|
92
93
|
}.freeze
|
93
94
|
|
94
95
|
# Generates {Node} from the given information.
|
@@ -15,8 +15,8 @@ module RuboCop
|
|
15
15
|
# :bar
|
16
16
|
# ]
|
17
17
|
#
|
18
|
-
# node.loc.begin.line_span
|
19
|
-
# node.
|
18
|
+
# node.loc.begin.line_span # => 1..1
|
19
|
+
# node.source_range.line_span(exclude_end: true) # => 1...4
|
20
20
|
def line_span(exclude_end: false)
|
21
21
|
::Range.new(first_line, last_line, exclude_end)
|
22
22
|
end
|
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
module RuboCop
|
4
4
|
module AST
|
5
|
-
# A node extension for `kwsplat` nodes. This will be used in
|
6
|
-
# plain
|
7
|
-
#
|
5
|
+
# A node extension for `kwsplat` and `forwarded_kwrestarg` nodes. This will be used in
|
6
|
+
# place of a plain node when the builder constructs the AST, making its methods available to
|
7
|
+
# all `kwsplat` and `forwarded_kwrestarg` nodes within RuboCop.
|
8
8
|
class KeywordSplatNode < Node
|
9
9
|
include HashElementNode
|
10
10
|
|
@@ -41,6 +41,13 @@ module RuboCop
|
|
41
41
|
def node_parts
|
42
42
|
[self, self]
|
43
43
|
end
|
44
|
+
|
45
|
+
# This provides `forwarded_kwrestarg` node to return true to be compatible with `kwsplat` node.
|
46
|
+
#
|
47
|
+
# @return [true]
|
48
|
+
def kwsplat_type?
|
49
|
+
true
|
50
|
+
end
|
44
51
|
end
|
45
52
|
end
|
46
53
|
end
|
@@ -47,7 +47,7 @@ module RuboCop
|
|
47
47
|
# @return [String] a Rainbow colorized version of ruby
|
48
48
|
def colorize(color_scheme = COLOR_SCHEME)
|
49
49
|
map = color_map(color_scheme)
|
50
|
-
ast.
|
50
|
+
ast.source_range.source_buffer.source.chars.map.with_index do |char, i|
|
51
51
|
Rainbow(char).color(map[i])
|
52
52
|
end.join
|
53
53
|
end
|
@@ -48,12 +48,12 @@ module RuboCop
|
|
48
48
|
|
49
49
|
def emit_unary_op(type, operator_t = nil, *children)
|
50
50
|
children[-1] = children[-1].first if children[-1].is_a?(Array) # token?
|
51
|
-
map = source_map(children.first.
|
51
|
+
map = source_map(children.first.source_range, operator_t: operator_t)
|
52
52
|
n(type, children, map)
|
53
53
|
end
|
54
54
|
|
55
55
|
def emit_list(type, begin_t, children, end_t)
|
56
|
-
expr = children.first.
|
56
|
+
expr = children.first.source_range.join(children.last.source_range)
|
57
57
|
map = source_map(expr, begin_t: begin_t, end_t: end_t)
|
58
58
|
n(type, children, map)
|
59
59
|
end
|
@@ -79,8 +79,7 @@ module RuboCop
|
|
79
79
|
end
|
80
80
|
|
81
81
|
def join_exprs(left_expr, right_expr)
|
82
|
-
left_expr.
|
83
|
-
.join(right_expr.loc.expression)
|
82
|
+
left_expr.source_range.join(right_expr.source_range)
|
84
83
|
end
|
85
84
|
|
86
85
|
def source_map(token_or_range, begin_t: nil, end_t: nil, operator_t: nil, selector_t: nil)
|
data/lib/rubocop/ast/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop-ast
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.28.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bozhidar Batsov
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-
|
13
|
+
date: 2023-03-24 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: parser
|