ruby: add test of rb/uninitialized-local-variable

This commit is contained in:
yoff
2025-04-09 16:49:36 +02:00
parent 7ed8a85e08
commit 1ca25b2ccb
3 changed files with 62 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
def m
puts "m"
end
def foo
m # calls m above
if false
m = 0
m # reads local variable m
else
end
m #$ Alert
m2 # undefined local variable or method 'm2' for main (NameError)
end
def test_guards
if (a = 3 && a) #$ Alert
a
end
if (a = 3) && a # OK - a is assigned in the previous conjunct
a
end
if !(a = 3) or a # OK - a is assigned in the previous conjunct
a
end
if false
b = 0
end
b.nil?
b || 0 #$ SPURIOUS: Alert
b&.m #$ SPURIOUS: Alert
b if b #$ SPURIOUS: Alert
b.close if b && !b.closed #$ SPURIOUS: Alert
b.blowup if b || !b.blownup #$ Alert
end
def test_loop
begin
if false
a = 0
else
set_a
end
end until a #$ SPURIOUS: Alert
a #$ SPURIOUS: Alert
end