Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Fix #7778] Fix a false positive for Layout/EndAlignment #7794

Merged

Conversation

koic
Copy link
Member

@koic koic commented Mar 11, 2020

Resolves #7778.

This PR resolves a false positive for Layout/EndAlignment when a non-whitespace is used before the end keyword.

% cat example.rb
if cond
else 'foo' end

% bundle exec rubocop -a --only Layout/EndAlignment
(snip)

Inspecting 1 file
W

Offenses:

example.rb:2:12: W: Layout/EndAlignment: end at 2, 11 is not aligned
with if at 1, 0.
else 'foo' end
           ^^^

1 file inspected, 1 offense detected

This PR changes to not offense it.

I think the responsibility will be clear if different (maybe new) cop like Layout/BlockEndNewline cop handle the offense case.
So I think this role is preferably separated by Layout/EndAlignment cop.


Before submitting the PR make sure the following are checked:

  • Wrote good commit messages.
  • Commit message starts with [Fix #issue-number] (if the related issue exists).
  • Feature branch is up-to-date with master (if not - rebase it).
  • Squashed related commits together.
  • Added tests.
  • Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
  • The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
  • Run bundle exec rake default. It executes all tests and RuboCop for itself, and generates the documentation.

Resolves rubocop#7778.

This PR resolves a false positive for `Layout/EndAlignment`
when a non-whitespace is used before the `end` keyword.

```console
% cat example.rb
if cond
else 'foo' end

% bundle exec rubocop -a --only Layout/EndAlignment
(snip)

Inspecting 1 file
W

Offenses:

example.rb:2:12: W: Layout/EndAlignment: end at 2, 11 is not aligned
with if at 1, 0.
else 'foo' end
           ^^^

1 file inspected, 1 offense detected
```

This PR changes to not offense it.

I think the responsibility will be clear if different (maybe new) cop like
`Layout/BlockEndNewline` cop handle the offense case.
So I think this role is preferably separated by `Layout/EndAlignment` cop.
@koic koic force-pushed the fix_a_false_positive_for_end_keyword_alignment branch from f171472 to 4bfe82e Compare March 19, 2020 11:06
@koic koic merged commit 8de00a9 into rubocop:master Mar 19, 2020
@koic koic deleted the fix_a_false_positive_for_end_keyword_alignment branch March 19, 2020 11:43
@tas50
Copy link
Contributor

tas50 commented Mar 19, 2020

Thanks @koic!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Layout/EndAlignment can't autocorrect condensed case statements
3 participants