mirror of
https://gitea.invidious.io/iv-org/shard-ameba.git
synced 2024-08-15 00:53:29 +00:00
RedundantNext params
This commit is contained in:
parent
eb104a04f7
commit
0002c36fae
2 changed files with 103 additions and 14 deletions
|
@ -11,16 +11,6 @@ module Ameba::Rule::Style
|
|||
subject.catch(s).should be_valid
|
||||
end
|
||||
|
||||
it "reports if there is redundant next in the block" do
|
||||
s = Source.new %(
|
||||
block do |v|
|
||||
p v + 1
|
||||
next
|
||||
end
|
||||
)
|
||||
subject.catch(s).should_not be_valid
|
||||
end
|
||||
|
||||
it "reports if there is redundant next with argument in the block" do
|
||||
s = Source.new %(
|
||||
block do |v|
|
||||
|
@ -99,7 +89,7 @@ module Ameba::Rule::Style
|
|||
s = Source.new %(
|
||||
block do |a|
|
||||
a = 1
|
||||
next
|
||||
next a
|
||||
end
|
||||
)
|
||||
subject.catch(s).should_not be_valid
|
||||
|
@ -121,7 +111,7 @@ module Ameba::Rule::Style
|
|||
it "reports if there is redundant next in binary op" do
|
||||
s = Source.new %(
|
||||
block do |a|
|
||||
a && next
|
||||
a && next a
|
||||
end
|
||||
)
|
||||
subject.catch(s).should_not be_valid
|
||||
|
@ -136,7 +126,7 @@ module Ameba::Rule::Style
|
|||
block do |v|
|
||||
v + 1
|
||||
rescue e
|
||||
next if v > 0
|
||||
next v if v > 0
|
||||
end
|
||||
)
|
||||
subject.catch(s).should be_valid
|
||||
|
@ -150,7 +140,7 @@ module Ameba::Rule::Style
|
|||
next a + 2
|
||||
rescue Exception
|
||||
a + 2
|
||||
next
|
||||
next a
|
||||
end
|
||||
)
|
||||
subject.catch(s).should_not be_valid
|
||||
|
@ -175,5 +165,55 @@ module Ameba::Rule::Style
|
|||
issue.end_location.to_s.should eq "source.cr:2:12"
|
||||
issue.message.should eq "Redundant `next` detected"
|
||||
end
|
||||
|
||||
context "properties" do
|
||||
context "#allow_multi_next=" do
|
||||
it "allows multi next statements by default" do
|
||||
s = Source.new %(
|
||||
block do |a, b|
|
||||
next a, b
|
||||
end
|
||||
)
|
||||
subject.catch(s).should be_valid
|
||||
end
|
||||
|
||||
it "allows to configure multi next statements" do
|
||||
s = Source.new %(
|
||||
block do |a, b|
|
||||
next a, b
|
||||
end
|
||||
)
|
||||
rule = Rule::Style::RedundantNext.new
|
||||
rule.allow_multi_next = false
|
||||
rule.catch(s).should_not be_valid
|
||||
s.issues.size.should eq 1
|
||||
s.issues.first.location.to_s.should eq ":2:3"
|
||||
end
|
||||
end
|
||||
|
||||
context "#allow_empty_next" do
|
||||
it "allows empty next statements by default" do
|
||||
s = Source.new %(
|
||||
block do
|
||||
next
|
||||
end
|
||||
)
|
||||
subject.catch(s).should be_valid
|
||||
end
|
||||
|
||||
it "allows to configure empty next statements" do
|
||||
s = Source.new %(
|
||||
block do
|
||||
next
|
||||
end
|
||||
)
|
||||
rule = Rule::Style::RedundantNext.new
|
||||
rule.allow_empty_next = false
|
||||
rule.catch(s).should_not be_valid
|
||||
s.issues.size.should eq 1
|
||||
s.issues.first.location.to_s.should eq ":2:3"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue