Skip to content

Commit

Permalink
Merge pull request #8082 from koic/fix_false_positive_for_lint_suppre…
Browse files Browse the repository at this point in the history
…ssed_exception

[Fix #8081] Fix an error for `Lint/SuppressedException`
  • Loading branch information
koic committed Jun 4, 2020
2 parents 9f98628 + 00f7941 commit 502fa4a
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -5,6 +5,7 @@
### Bug fixes

* [#8083](https://github.com/rubocop-hq/rubocop/issues/8083): Fix an error for `Lint/MixedRegexpCaptureTypes` cop when using a regular expression that cannot be processed by regexp_parser gem. ([@koic][])
* [#8081](https://github.com/rubocop-hq/rubocop/issues/8081): Fix an error for `Lint/SuppressedException` when empty rescue block in `do` block. ([@koic][])

## 0.85.0 (2020-06-01)

Expand Down
2 changes: 1 addition & 1 deletion lib/rubocop/cop/lint/suppressed_exception.rb
Expand Up @@ -78,7 +78,7 @@ def on_resbody(node)

def comment_between_rescue_and_end?(node)
end_line = nil
node.each_ancestor(:kwbegin, :def) do |ancestor|
node.each_ancestor(:kwbegin, :def, :block) do |ancestor|
end_line = ancestor.loc.end.line
break
end
Expand Down
47 changes: 47 additions & 0 deletions spec/rubocop/cop/lint/suppressed_exception_spec.rb
Expand Up @@ -48,6 +48,30 @@ def foo
RUBY
end
end

context 'Ruby 2.5 or higher', :ruby25 do
context 'when empty rescue for `do` block' do
it 'registers an offense for empty rescue without comment' do
expect_offense(<<~RUBY)
foo do
do_something
rescue
^^^^^^ Do not suppress exceptions.
end
RUBY
end

it 'registers an offense for empty rescue with comment' do
expect_offense(<<~RUBY)
foo do
rescue
^^^^^^ Do not suppress exceptions.
# do nothing
end
RUBY
end
end
end
end

context 'with AllowComments set to true' do
Expand Down Expand Up @@ -86,6 +110,29 @@ def foo
end
end

context 'Ruby 2.5 or higher', :ruby25 do
context 'when empty rescue for `do` block' do
it 'registers an offense for empty rescue without comment' do
expect_offense(<<~RUBY)
foo do
do_something
rescue
^^^^^^ Do not suppress exceptions.
end
RUBY
end

it 'does not register an offense for empty rescue with comment' do
expect_no_offenses(<<~RUBY)
foo do
rescue
# do nothing
end
RUBY
end
end
end

it 'registers an offense for empty rescue on single line with a comment after it' do
expect_offense(<<~RUBY)
RSpec.describe Dummy do
Expand Down

0 comments on commit 502fa4a

Please sign in to comment.