Skip to content

Commit fdf99e2

Browse files
committed
Rust: filter out definitions that are inside expanded macros
1 parent c4126e4 commit fdf99e2

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

rust/ql/lib/codeql/rust/internal/Definitions.qll

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ private import codeql.rust.elements.Locatable
88
private import codeql.rust.elements.FormatArgsExpr
99
private import codeql.rust.elements.FormatArgsArg
1010
private import codeql.rust.elements.Format
11+
private import codeql.rust.elements.MacroCall
1112
private import codeql.rust.elements.NamedFormatArgument
1213
private import codeql.rust.elements.PositionalFormatArgument
1314
private import codeql.Locations
@@ -36,7 +37,9 @@ private module Cached {
3637
*/
3738
cached
3839
Definition definitionOf(Use use, string kind) {
39-
result = use.getDefinition() and kind = use.getUseType()
40+
result = use.getDefinition() and
41+
kind = use.getUseType() and
42+
not result.getLocation() = any(MacroCall m).getLocation()
4043
}
4144
}
4245

rust/ql/test/library-tests/definitions/Definitions.expected

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,4 @@
1616
| main.rs:10:31:10:31 | 1 | main.rs:10:23:10:23 | 0 | format argument |
1717
| main.rs:10:34:10:34 | 2 | main.rs:10:16:10:16 | 1 | format argument |
1818
| main.rs:10:34:10:34 | 2 | main.rs:10:26:10:27 | {} | format argument |
19-
| main.rs:11:5:11:60 | left_val | main.rs:11:5:11:60 | left_val | local variable |
20-
| main.rs:11:5:11:60 | left_val | main.rs:11:5:11:60 | left_val | local variable |
21-
| main.rs:11:5:11:60 | right_val | main.rs:11:5:11:60 | right_val | local variable |
22-
| main.rs:11:5:11:60 | right_val | main.rs:11:5:11:60 | right_val | local variable |
2319
| main.rs:11:40:11:42 | "x" | main.rs:11:31:11:35 | {:<5} | format argument |

0 commit comments

Comments
 (0)