Skip to content

Commit 97ab31a

Browse files
authored
Merge pull request github#18229 from geoffw0/self
Rust: Fix unwanted 'self' results from rust/unused-variable
2 parents 127518e + 281f8b1 commit 97ab31a

File tree

4 files changed

+34
-27
lines changed

4 files changed

+34
-27
lines changed

rust/ql/src/queries/unusedentities/UnusedVariable.qll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,7 @@ predicate isUnused(Variable v) {
2323
predicate isAllowableUnused(Variable v) {
2424
// in a macro expansion
2525
v.getPat().isInMacroExpansion()
26+
or
27+
// a 'self' variable
28+
v.getName() = "self"
2629
}

rust/ql/test/query-tests/unusedentities/UnusedValue.expected

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
| main.rs:65:5:65:5 | f | Variable $@ is assigned a value that is never used. | main.rs:34:13:34:13 | f | f |
99
| main.rs:67:5:67:5 | f | Variable $@ is assigned a value that is never used. | main.rs:34:13:34:13 | f | f |
1010
| main.rs:69:5:69:5 | g | Variable $@ is assigned a value that is never used. | main.rs:35:9:35:9 | g | g |
11-
| main.rs:91:9:91:9 | a | Variable $@ is assigned a value that is never used. | main.rs:91:9:91:9 | a | a |
12-
| main.rs:112:9:112:10 | is | Variable $@ is assigned a value that is never used. | main.rs:112:9:112:10 | is | is |
13-
| main.rs:135:13:135:17 | total | Variable $@ is assigned a value that is never used. | main.rs:135:13:135:17 | total | total |
14-
| main.rs:280:13:280:17 | total | Variable $@ is assigned a value that is never used. | main.rs:248:13:248:17 | total | total |
15-
| main.rs:373:9:373:9 | x | Variable $@ is assigned a value that is never used. | main.rs:373:9:373:9 | x | x |
16-
| main.rs:381:17:381:17 | x | Variable $@ is assigned a value that is never used. | main.rs:381:17:381:17 | x | x |
17-
| main.rs:482:9:482:9 | c | Variable $@ is assigned a value that is never used. | main.rs:482:9:482:9 | c | c |
11+
| main.rs:95:9:95:9 | a | Variable $@ is assigned a value that is never used. | main.rs:95:9:95:9 | a | a |
12+
| main.rs:116:9:116:10 | is | Variable $@ is assigned a value that is never used. | main.rs:116:9:116:10 | is | is |
13+
| main.rs:139:13:139:17 | total | Variable $@ is assigned a value that is never used. | main.rs:139:13:139:17 | total | total |
14+
| main.rs:284:13:284:17 | total | Variable $@ is assigned a value that is never used. | main.rs:252:13:252:17 | total | total |
15+
| main.rs:377:9:377:9 | x | Variable $@ is assigned a value that is never used. | main.rs:377:9:377:9 | x | x |
16+
| main.rs:385:17:385:17 | x | Variable $@ is assigned a value that is never used. | main.rs:385:17:385:17 | x | x |
17+
| main.rs:486:9:486:9 | c | Variable $@ is assigned a value that is never used. | main.rs:486:9:486:9 | c | c |
1818
| more.rs:44:9:44:14 | a_ptr4 | Variable $@ is assigned a value that is never used. | more.rs:44:9:44:14 | a_ptr4 | a_ptr4 |
1919
| more.rs:59:9:59:13 | d_ptr | Variable $@ is assigned a value that is never used. | more.rs:59:9:59:13 | d_ptr | d_ptr |
2020
| more.rs:65:9:65:17 | f_ptr | Variable $@ is assigned a value that is never used. | more.rs:65:13:65:17 | f_ptr | f_ptr |
Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
| main.rs:29:9:29:9 | a | Variable 'a' is not used. |
2-
| main.rs:94:13:94:13 | d | Variable 'd' is not used. |
3-
| main.rs:143:5:143:5 | y | Variable 'y' is not used. |
4-
| main.rs:170:9:170:9 | x | Variable 'x' is not used. |
5-
| main.rs:250:17:250:17 | a | Variable 'a' is not used. |
6-
| main.rs:258:20:258:22 | val | Variable 'val' is not used. |
7-
| main.rs:272:14:272:16 | val | Variable 'val' is not used. |
8-
| main.rs:287:22:287:24 | val | Variable 'val' is not used. |
9-
| main.rs:294:24:294:26 | val | Variable 'val' is not used. |
10-
| main.rs:302:13:302:15 | num | Variable 'num' is not used. |
11-
| main.rs:317:12:317:12 | j | Variable 'j' is not used. |
12-
| main.rs:337:25:337:25 | y | Variable 'y' is not used. |
13-
| main.rs:340:28:340:28 | a | Variable 'a' is not used. |
14-
| main.rs:343:9:343:9 | p | Variable 'p' is not used. |
15-
| main.rs:361:9:361:13 | right | Variable 'right' is not used. |
16-
| main.rs:367:9:367:14 | right2 | Variable 'right2' is not used. |
17-
| main.rs:374:13:374:13 | y | Variable 'y' is not used. |
18-
| main.rs:382:21:382:21 | y | Variable 'y' is not used. |
19-
| main.rs:427:26:427:28 | val | Variable 'val' is not used. |
20-
| main.rs:430:21:430:23 | acc | Variable 'acc' is not used. |
21-
| main.rs:451:9:451:14 | unused | Variable 'unused' is not used. |
2+
| main.rs:98:13:98:13 | d | Variable 'd' is not used. |
3+
| main.rs:147:5:147:5 | y | Variable 'y' is not used. |
4+
| main.rs:174:9:174:9 | x | Variable 'x' is not used. |
5+
| main.rs:254:17:254:17 | a | Variable 'a' is not used. |
6+
| main.rs:262:20:262:22 | val | Variable 'val' is not used. |
7+
| main.rs:276:14:276:16 | val | Variable 'val' is not used. |
8+
| main.rs:291:22:291:24 | val | Variable 'val' is not used. |
9+
| main.rs:298:24:298:26 | val | Variable 'val' is not used. |
10+
| main.rs:306:13:306:15 | num | Variable 'num' is not used. |
11+
| main.rs:321:12:321:12 | j | Variable 'j' is not used. |
12+
| main.rs:341:25:341:25 | y | Variable 'y' is not used. |
13+
| main.rs:344:28:344:28 | a | Variable 'a' is not used. |
14+
| main.rs:347:9:347:9 | p | Variable 'p' is not used. |
15+
| main.rs:365:9:365:13 | right | Variable 'right' is not used. |
16+
| main.rs:371:9:371:14 | right2 | Variable 'right2' is not used. |
17+
| main.rs:378:13:378:13 | y | Variable 'y' is not used. |
18+
| main.rs:386:21:386:21 | y | Variable 'y' is not used. |
19+
| main.rs:431:26:431:28 | val | Variable 'val' is not used. |
20+
| main.rs:434:21:434:23 | acc | Variable 'acc' is not used. |
21+
| main.rs:455:9:455:14 | unused | Variable 'unused' is not used. |
2222
| more.rs:24:9:24:11 | val | Variable 'val' is not used. |

rust/ql/test/query-tests/unusedentities/main.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ impl MyStruct {
8585
fn my_get(&mut self) -> i64 {
8686
return self.val;
8787
}
88+
89+
fn get_flags(&self) -> i64 {
90+
return 0;
91+
}
8892
}
8993

9094
fn structs() {

0 commit comments

Comments
 (0)