зеркало из https://github.com/github/ruby.git
[ruby/prism] Fix hash pairs in patterns
https://github.com/ruby/prism/commit/b7ab29daa0
This commit is contained in:
Родитель
eaea53b836
Коммит
d2f004cf6a
|
@ -105,14 +105,18 @@ module Prism
|
||||||
# { a: 1 }
|
# { a: 1 }
|
||||||
# ^^^^
|
# ^^^^
|
||||||
def visit_assoc_node(node)
|
def visit_assoc_node(node)
|
||||||
if node.value.is_a?(ImplicitNode)
|
if in_pattern
|
||||||
builder.pair_label([node.key.slice.chomp(":"), srange(node.key.location)])
|
if node.value.is_a?(ImplicitNode)
|
||||||
elsif in_pattern && node.value.nil?
|
if node.key.is_a?(SymbolNode)
|
||||||
if node.key.is_a?(SymbolNode)
|
builder.match_hash_var([node.key.unescaped, srange(node.key.location)])
|
||||||
builder.match_hash_var([node.key.unescaped, srange(node.key.location)])
|
else
|
||||||
|
builder.match_hash_var_from_str(token(node.key.opening_loc), visit_all(node.key.parts), token(node.key.closing_loc))
|
||||||
|
end
|
||||||
else
|
else
|
||||||
builder.match_hash_var_from_str(token(node.key.opening_loc), visit_all(node.key.parts), token(node.key.closing_loc))
|
builder.pair_keyword([node.key.unescaped, srange(node.key.location)], visit(node.value))
|
||||||
end
|
end
|
||||||
|
elsif node.value.is_a?(ImplicitNode)
|
||||||
|
builder.pair_label([node.key.unescaped, srange(node.key.location)])
|
||||||
elsif node.operator_loc
|
elsif node.operator_loc
|
||||||
builder.pair(visit(node.key), token(node.operator_loc), visit(node.value))
|
builder.pair(visit(node.key), token(node.operator_loc), visit(node.value))
|
||||||
elsif node.key.is_a?(SymbolNode) && node.key.opening_loc.nil?
|
elsif node.key.is_a?(SymbolNode) && node.key.opening_loc.nil?
|
||||||
|
|
Загрузка…
Ссылка в новой задаче