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 assignment.branch.should be_nil
end end
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
end end

View file

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

View file

@ -76,6 +76,9 @@ module Ameba::AST
end end
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. # Indicates whether the node is a transformed assignment by the compiler.
# i.e. # i.e.
# #