lib/rubocop/cop/salsify/style_dig.rb in salsify_rubocop-0.47.1 vs lib/rubocop/cop/salsify/style_dig.rb in salsify_rubocop-0.47.2
- old
+ new
@@ -26,11 +26,11 @@
def_node_matcher :nested_access_match, <<-PATTERN
(send (send (send _receiver !:[]) :[] _) :[] _)
PATTERN
def on_send(node)
- nested_access_match(node) do
+ if nested_access_match(node) && !conditional_assignment?(node)
match_node = node
# walk to outermost access node
match_node = match_node.parent while access_node?(match_node.parent)
add_offense(match_node, :expression, MSG)
end
@@ -52,9 +52,13 @@
corrector.replace(range, ".dig(#{source_args.reverse.join(', ')})")
end
end
private
+
+ def conditional_assignment?(node)
+ node.parent && node.parent.or_asgn_type? && (node.parent.children.first == node)
+ end
def access_node?(node)
node && node.send_type? && node.method_name == :[]
end
end