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 CRYSTAL
end 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 context "super" do
it "reports if variable is not referenced implicitly by super" do it "reports if variable is not referenced implicitly by super" do
source = expect_issue subject, <<-CRYSTAL source = expect_issue subject, <<-CRYSTAL

View file

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