Merge pull request #355 from crystal-ameba/fix/unused_block_arg

fix(lint): Lint/UnusedBlockArgument is triggered by abstract def
This commit is contained in:
Vitalii Elenhaupt 2023-02-19 13:46:45 +02:00 committed by GitHub
commit 6717ac7b70
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 0 deletions

View file

@ -89,6 +89,13 @@ module Ameba::Rule::Lint
CRYSTAL
end
it "doesn't report if used in abstract def" do
expect_no_issues subject, <<-CRYSTAL
abstract def debug(id : String, &on_message: Callback)
abstract def info(&on_message: Callback)
CRYSTAL
end
context "super" do
it "reports if variable is not referenced implicitly by super" do
source = expect_issue subject, <<-CRYSTAL

View file

@ -47,6 +47,8 @@ module Ameba::Rule::Lint
end
def test(source, node : Crystal::Def, scope : AST::Scope)
return if node.abstract?
return unless block_arg = node.block_arg
return unless block_arg = scope.arguments.find(&.node.== block_arg)