Skip to content

Commit 1ca25b2

Browse files
committed
ruby: add test of rb/uninitialized-local-variable
1 parent 7ed8a85 commit 1ca25b2

File tree

3 files changed

+62
-0
lines changed

3 files changed

+62
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
| UninitializedLocal.rb:12:3:12:3 | m | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:8:7:8:7 | m | m |
2+
| UninitializedLocal.rb:17:16:17:16 | a | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:17:7:17:7 | a | a |
3+
| UninitializedLocal.rb:30:3:30:3 | b | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:27:7:27:7 | b | b |
4+
| UninitializedLocal.rb:31:3:31:3 | b | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:27:7:27:7 | b | b |
5+
| UninitializedLocal.rb:32:3:32:3 | b | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:27:7:27:7 | b | b |
6+
| UninitializedLocal.rb:32:8:32:8 | b | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:27:7:27:7 | b | b |
7+
| UninitializedLocal.rb:33:3:33:3 | b | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:27:7:27:7 | b | b |
8+
| UninitializedLocal.rb:33:14:33:14 | b | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:27:7:27:7 | b | b |
9+
| UninitializedLocal.rb:33:20:33:20 | b | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:27:7:27:7 | b | b |
10+
| UninitializedLocal.rb:34:3:34:3 | b | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:27:7:27:7 | b | b |
11+
| UninitializedLocal.rb:34:15:34:15 | b | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:27:7:27:7 | b | b |
12+
| UninitializedLocal.rb:34:21:34:21 | b | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:27:7:27:7 | b | b |
13+
| UninitializedLocal.rb:44:13:44:13 | a | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:40:11:40:11 | a | a |
14+
| UninitializedLocal.rb:45:3:45:3 | a | Local variable $@ may be used before it is initialized. | UninitializedLocal.rb:40:11:40:11 | a | a |
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
query: queries/variables/UninitializedLocal.ql
2+
postprocess: utils/test/InlineExpectationsTestQuery.ql
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
def m
2+
puts "m"
3+
end
4+
5+
def foo
6+
m # calls m above
7+
if false
8+
m = 0
9+
m # reads local variable m
10+
else
11+
end
12+
m #$ Alert
13+
m2 # undefined local variable or method 'm2' for main (NameError)
14+
end
15+
16+
def test_guards
17+
if (a = 3 && a) #$ Alert
18+
a
19+
end
20+
if (a = 3) && a # OK - a is assigned in the previous conjunct
21+
a
22+
end
23+
if !(a = 3) or a # OK - a is assigned in the previous conjunct
24+
a
25+
end
26+
if false
27+
b = 0
28+
end
29+
b.nil?
30+
b || 0 #$ SPURIOUS: Alert
31+
b&.m #$ SPURIOUS: Alert
32+
b if b #$ SPURIOUS: Alert
33+
b.close if b && !b.closed #$ SPURIOUS: Alert
34+
b.blowup if b || !b.blownup #$ Alert
35+
end
36+
37+
def test_loop
38+
begin
39+
if false
40+
a = 0
41+
else
42+
set_a
43+
end
44+
end until a #$ SPURIOUS: Alert
45+
a #$ SPURIOUS: Alert
46+
end

0 commit comments

Comments
 (0)