lib/rubocop/cop/lint/safe_navigation_chain.rb in rubocop-1.56.3 vs lib/rubocop/cop/lint/safe_navigation_chain.rb in rubocop-1.56.4

- old
+ new

@@ -80,18 +80,25 @@ # @param [Parser::Source::Range] offense_range # @param [RuboCop::AST::SendNode] send_node def autocorrect(corrector, offense_range:, send_node:) corrector.replace( offense_range, - add_safe_navigation_operator( - offense_range: offense_range, - send_node: send_node - ) + add_safe_navigation_operator(offense_range: offense_range, send_node: send_node) ) + + corrector.wrap(send_node, '(', ')') if require_parentheses?(send_node) end def brackets?(send_node) send_node.method?(:[]) || send_node.method?(:[]=) + end + + def require_parentheses?(send_node) + return false unless send_node.comparison_method? + return false unless (node = send_node.parent) + + (node.respond_to?(:logical_operator?) && node.logical_operator?) || + (node.respond_to?(:comparison_method?) && node.comparison_method?) end end end end end