Skip to content

Commit

Permalink
Fix an error for Layout/BlockAlignment when using Ruby 3.1.0-dev
Browse files Browse the repository at this point in the history
This PR fixes the following build error.

```console
% bundle exec rspec ./spec/rubocop/cop/layout/block_alignment_spec.rb:222
(snip)

      # ./lib/rubocop/cop/layout/block_alignment.rb:97:in `start_for_block_node'
      # ./lib/rubocop/cop/layout/block_alignment.rb:82:in `on_block'
      # ./lib/rubocop/cop/commissioner.rb:100:in `public_send'
      # ./lib/rubocop/cop/commissioner.rb:100:in `block (2 levels) in trigger_responding_cops'
      # ./lib/rubocop/cop/commissioner.rb:160:in `with_cop_error_handling'
      # ./lib/rubocop/cop/commissioner.rb:99:in `block in trigger_responding_cops'
```

https://app.circleci.com/pipelines/github/rubocop/rubocop/5414/workflows/4a7e4b81-7380-41e5-8ede-e28d9160010d/jobs/201236

I reported on this change of behavior.
https://bugs.ruby-lang.org/issues/18268

And it was due to the following change.
ruby/ruby#1509

This PR will be changed to the cop logic that is not affected by the above Ruby 3.1.0-dev change.
  • Loading branch information
koic committed Oct 26, 2021
1 parent 00d940a commit 1c9abe9
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions lib/rubocop/cop/layout/block_alignment.rb
Expand Up @@ -101,11 +101,11 @@ def start_for_block_node(block_node)
def block_end_align_target(node)
lineage = [node, *node.ancestors]

target = lineage.each_cons(2) do |current, parent|
break current if end_align_target?(current, parent)
lineage.each_cons(2) do |current, parent|
return current if end_align_target?(current, parent)
end

target || lineage.last
lineage.last
end

def end_align_target?(node, parent)
Expand Down

0 comments on commit 1c9abe9

Please sign in to comment.