diff --git a/spec/ameba/rule/lint/useless_assign_spec.cr b/spec/ameba/rule/lint/useless_assign_spec.cr index d5325397..b80501fd 100644 --- a/spec/ameba/rule/lint/useless_assign_spec.cr +++ b/spec/ameba/rule/lint/useless_assign_spec.cr @@ -402,11 +402,12 @@ module Ameba::Rule::Lint CRYSTAL end - it "doesn't report type declaration as a call argument" do + pending "doesn't report type declaration as a call argument" do expect_no_issues subject, <<-CRYSTAL foo Foo(T), foo : T foo Foo, foo : Nil - foo foo : String, bar : Int32? + foo foo : String + foo foo : String, bar : Int32?, baz : Bool CRYSTAL end diff --git a/src/ameba/rule/lint/useless_assign.cr b/src/ameba/rule/lint/useless_assign.cr index 444eda8c..6e59e7ce 100644 --- a/src/ameba/rule/lint/useless_assign.cr +++ b/src/ameba/rule/lint/useless_assign.cr @@ -43,10 +43,7 @@ module Ameba::Rule::Lint scope.variables.each do |var| next if var.ignored? || var.used_in_macro? || var.captured_by_block? - - if scope.assigns_type_dec?(var.name) - next if exclude_type_declarations? || expressions_with_call?(node) - end + next if exclude_type_declarations? && scope.assigns_type_dec?(var.name) var.assignments.each do |assign| check_assignment(source, assign, var) @@ -54,11 +51,6 @@ module Ameba::Rule::Lint end end - private def expressions_with_call?(node) - node.is_a?(Crystal::Expressions) && - node.expressions.first?.is_a?(Crystal::Call) - end - private def check_assignment(source, assign, var) return if assign.referenced?