lib/rubocop/cop/lint/safe_navigation_chain.rb in rubocop-1.67.0 vs lib/rubocop/cop/lint/safe_navigation_chain.rb in rubocop-1.68.0

- old
+ new

@@ -36,10 +36,12 @@ (send $({block numblock} (csend ...) ...) $_ ...) } PATTERN def on_send(node) + return unless require_safe_navigation?(node) + bad_method?(node) do |safe_nav, method| return if nil_methods.include?(method) || PLUS_MINUS_METHODS.include?(node.method_name) begin_range = node.loc.dot || safe_nav.source_range.end location = begin_range.join(node.source_range.end) @@ -49,9 +51,16 @@ end end end private + + def require_safe_navigation?(node) + parent = node.parent + return true unless parent&.and_type? + + parent.rhs != node || parent.lhs.receiver != parent.rhs.receiver + end # @param [Parser::Source::Range] offense_range # @param [RuboCop::AST::SendNode] send_node # @return [String] def add_safe_navigation_operator(offense_range:, send_node:)