Rust: add tests for Definitions.qll

This commit is contained in:
Arthur Baars
2024-10-28 11:17:48 +01:00
parent 40ef9ad805
commit c4126e4410
6 changed files with 42 additions and 2 deletions

View File

@@ -8,7 +8,7 @@
*/
import codeql.IDEContextual
import Definitions
import codeql.rust.internal.Definitions
external string selectedSourceFile();

View File

@@ -8,7 +8,7 @@
*/
import codeql.IDEContextual
import Definitions
import codeql.rust.internal.Definitions
external string selectedSourceFile();

View File

@@ -0,0 +1,23 @@
| main.rs:2:9:2:13 | width | main.rs:5:29:5:33 | width | local variable |
| main.rs:2:9:2:13 | width | main.rs:6:41:6:45 | width | local variable |
| main.rs:2:9:2:13 | width | main.rs:7:36:7:40 | width | local variable |
| main.rs:3:9:3:17 | precision | main.rs:5:36:5:44 | precision | local variable |
| main.rs:3:9:3:17 | precision | main.rs:6:48:6:56 | precision | local variable |
| main.rs:4:9:4:13 | value | main.rs:6:34:6:38 | value | local variable |
| main.rs:4:9:4:13 | value | main.rs:7:29:7:33 | value | local variable |
| main.rs:5:50:5:54 | value | main.rs:5:22:5:26 | value | format argument |
| main.rs:6:34:6:38 | value | main.rs:6:22:6:22 | 0 | format argument |
| main.rs:6:41:6:45 | width | main.rs:6:25:6:25 | 1 | format argument |
| main.rs:6:48:6:56 | precision | main.rs:6:28:6:28 | 2 | format argument |
| main.rs:7:29:7:33 | value | main.rs:7:21:7:22 | {} | format argument |
| main.rs:7:36:7:40 | width | main.rs:7:24:7:25 | {} | format argument |
| main.rs:8:9:8:14 | people | main.rs:9:22:9:27 | people | local variable |
| main.rs:10:31:10:31 | 1 | main.rs:10:19:10:20 | {} | format argument |
| main.rs:10:31:10:31 | 1 | main.rs:10:23:10:23 | 0 | format argument |
| main.rs:10:34:10:34 | 2 | main.rs:10:16:10:16 | 1 | format argument |
| main.rs:10:34:10:34 | 2 | main.rs:10:26:10:27 | {} | format argument |
| main.rs:11:5:11:60 | left_val | main.rs:11:5:11:60 | left_val | local variable |
| main.rs:11:5:11:60 | left_val | main.rs:11:5:11:60 | left_val | local variable |
| main.rs:11:5:11:60 | right_val | main.rs:11:5:11:60 | right_val | local variable |
| main.rs:11:5:11:60 | right_val | main.rs:11:5:11:60 | right_val | local variable |
| main.rs:11:40:11:42 | "x" | main.rs:11:31:11:35 | {:<5} | format argument |

View File

@@ -0,0 +1,5 @@
import codeql.rust.internal.Definitions
from Definition def, Use use, string kind
where def = definitionOf(use, kind)
select def, use, kind

View File

@@ -0,0 +1,12 @@
fn main() {
let width = 4;
let precision = 2;
let value = 10;
println!("Value {value:#width$.precision$}", value = 10.5);
println!("Value {0:#1$.2$}", value, width, precision);
println!("Value {} {}", value, width);
let people = "Rustaceans";
println!("Hello {people}!");
println!("{1} {} {0} {}", 1, 2);
assert_eq!(format!("Hello {:<5}!", "x"), "Hello x !");
}