fix: crystal next compatibility

refs https://github.com/crystal-lang/crystal/pull/11597
fixes https://github.com/crystal-ameba/ameba/issues/406
This commit is contained in:
Vitalii Elenhaupt 2023-10-06 18:50:59 +03:00
parent 7174e81a13
commit 789e1b77e8
No known key found for this signature in database
GPG key ID: CD0BF17825928BC0
3 changed files with 4 additions and 26 deletions

View file

@ -85,30 +85,5 @@ module Ameba::AST
assignment.branch.should be_nil
end
end
describe "#transformed?" do
it "returns false if the assignment is not transformed by the compiler" do
nodes = as_nodes <<-CRYSTAL
def method(a)
a = 2
end
CRYSTAL
scope = Scope.new nodes.def_nodes.first
variable = Variable.new(nodes.var_nodes.first, scope)
assignment = Assignment.new(nodes.assign_nodes.first, variable, scope)
assignment.transformed?.should be_false
end
it "returns true if the assignment is transformed by the compiler" do
nodes = as_nodes <<-CRYSTAL
array.each do |(a, b)|
end
CRYSTAL
scope = Scope.new nodes.block_nodes.first
variable = Variable.new(nodes.var_nodes.first, scope)
assignment = Assignment.new(nodes.assign_nodes.first, variable, scope)
assignment.transformed?.should be_true
end
end
end
end

View file

@ -233,7 +233,7 @@ module Ameba::Rule::Lint
subject.catch(s).should be_valid
end
context "when transformed" do
context "block unpacking" do
it "does not report if the first arg is transformed and not used" do
s = Source.new %(
collection.each do |(a, b)|

View file

@ -76,6 +76,9 @@ module Ameba::AST
end
end
# TODO: Remove in a next release. BC for crystal <= 1.9.
# refs https://github.com/crystal-ameba/ameba/pull/407
#
# Indicates whether the node is a transformed assignment by the compiler.
# i.e.
#