lib/rubocop/cop/style/lambda.rb in rubocop-0.49.1 vs lib/rubocop/cop/style/lambda.rb in rubocop-0.50.0

- old
+ new

@@ -125,11 +125,11 @@ def autocorrect_literal_to_method(corrector, node) block_method, args = *node # Check for unparenthesized args' preceding and trailing whitespaces. - remove_unparenthesized_whitespaces(corrector, node) + remove_unparenthesized_whitespace(corrector, node) # Avoid correcting to `lambdado` by inserting whitespace # if none exists before or after the lambda arguments. if needs_whitespace?(block_method, args, node) corrector.insert_before(node.loc.begin, ' ') @@ -184,21 +184,31 @@ return false if parenthesized_call?(parent) arg_node.sibling_index > 1 end - def remove_unparenthesized_whitespaces(corrector, node) - block_method, args = *node + def remove_unparenthesized_whitespace(corrector, node) + args = node.arguments + return unless unparenthesized_literal_args?(args) - # First, remove leading whitespaces (between arrow and args) + + remove_leading_whitespace(node, corrector) + remove_trailing_whitespace(node, corrector) + end + + def remove_leading_whitespace(node, corrector) corrector.remove_preceding( - args.source_range, - args.source_range.begin_pos - block_method.source_range.end_pos + node.arguments.source_range, + node.arguments.source_range.begin_pos - + node.send_node.source_range.end_pos ) + end - # Then, remove trailing whitespaces (between args and 'do') - delta = node.loc.begin.begin_pos - args.source_range.end_pos - 1 - corrector.remove_preceding(node.loc.begin, delta) + def remove_trailing_whitespace(node, corrector) + corrector.remove_preceding( + node.loc.begin, + node.loc.begin.begin_pos - node.arguments.source_range.end_pos - 1 + ) end def unparenthesized_literal_args?(args) args.source_range && args.source_range.begin && !parentheses?(args) end