mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
To do this we: * Let SSA writes target the name inside identifier patterns instead of the pattern itself * Include relevant names in the data flow graph * Add a store step from a identifier patterns with `ref` into the contained name. So we have an edge `ref a` -> `a` that stores in the reference content type.
96 lines
7.5 KiB
Plaintext
96 lines
7.5 KiB
Plaintext
models
|
|
| 1 | Summary: lang:core; <crate::option::Option as crate::clone::Clone>::clone; Argument[self].Variant[crate::option::Option::Some(0)]; ReturnValue.Variant[crate::option::Option::Some(0)]; value |
|
|
| 2 | Summary: lang:core; <crate::option::Option>::unwrap; Argument[self].Variant[crate::option::Option::Some(0)]; ReturnValue; value |
|
|
| 3 | Summary: lang:core; <crate::result::Result>::unwrap; Argument[self].Variant[crate::result::Result::Ok(0)]; ReturnValue; value |
|
|
edges
|
|
| main.rs:13:9:13:9 | a [Some] | main.rs:14:10:14:10 | a [Some] | provenance | |
|
|
| main.rs:13:9:13:9 | a [Some] | main.rs:15:13:15:13 | a [Some] | provenance | |
|
|
| main.rs:13:13:13:28 | Some(...) [Some] | main.rs:13:9:13:9 | a [Some] | provenance | |
|
|
| main.rs:13:18:13:27 | source(...) | main.rs:13:13:13:28 | Some(...) [Some] | provenance | |
|
|
| main.rs:14:10:14:10 | a [Some] | main.rs:14:10:14:19 | a.unwrap(...) | provenance | MaD:2 |
|
|
| main.rs:15:9:15:9 | b [Some] | main.rs:16:10:16:10 | b [Some] | provenance | |
|
|
| main.rs:15:13:15:13 | a [Some] | main.rs:15:13:15:21 | a.clone(...) [Some] | provenance | MaD:1 |
|
|
| main.rs:15:13:15:21 | a.clone(...) [Some] | main.rs:15:9:15:9 | b [Some] | provenance | |
|
|
| main.rs:16:10:16:10 | b [Some] | main.rs:16:10:16:19 | b.unwrap(...) | provenance | MaD:2 |
|
|
| main.rs:20:9:20:9 | a [Ok] | main.rs:21:10:21:10 | a [Ok] | provenance | |
|
|
| main.rs:20:9:20:9 | a [Ok] | main.rs:22:13:22:13 | a [Ok] | provenance | |
|
|
| main.rs:20:31:20:44 | Ok(...) [Ok] | main.rs:20:9:20:9 | a [Ok] | provenance | |
|
|
| main.rs:20:34:20:43 | source(...) | main.rs:20:31:20:44 | Ok(...) [Ok] | provenance | |
|
|
| main.rs:21:10:21:10 | a [Ok] | main.rs:21:10:21:19 | a.unwrap(...) | provenance | MaD:3 |
|
|
| main.rs:22:9:22:9 | b [Ok] | main.rs:23:10:23:10 | b [Ok] | provenance | |
|
|
| main.rs:22:13:22:13 | a [Ok] | main.rs:22:13:22:21 | a.clone(...) [Ok] | provenance | |
|
|
| main.rs:22:13:22:21 | a.clone(...) [Ok] | main.rs:22:9:22:9 | b [Ok] | provenance | |
|
|
| main.rs:23:10:23:10 | b [Ok] | main.rs:23:10:23:19 | b.unwrap(...) | provenance | MaD:3 |
|
|
| main.rs:27:9:27:9 | a | main.rs:28:10:28:10 | a | provenance | |
|
|
| main.rs:27:9:27:9 | a | main.rs:29:13:29:13 | a | provenance | |
|
|
| main.rs:27:13:27:22 | source(...) | main.rs:27:9:27:9 | a | provenance | |
|
|
| main.rs:29:9:29:9 | b | main.rs:30:10:30:10 | b | provenance | |
|
|
| main.rs:29:13:29:13 | a | main.rs:29:13:29:21 | a.clone(...) | provenance | |
|
|
| main.rs:29:13:29:21 | a.clone(...) | main.rs:29:9:29:9 | b | provenance | |
|
|
| main.rs:42:13:42:13 | w [Wrapper] | main.rs:43:15:43:15 | w [Wrapper] | provenance | |
|
|
| main.rs:42:17:42:41 | Wrapper {...} [Wrapper] | main.rs:42:13:42:13 | w [Wrapper] | provenance | |
|
|
| main.rs:42:30:42:39 | source(...) | main.rs:42:17:42:41 | Wrapper {...} [Wrapper] | provenance | |
|
|
| main.rs:43:15:43:15 | w [Wrapper] | main.rs:44:13:44:28 | Wrapper {...} [Wrapper] | provenance | |
|
|
| main.rs:43:15:43:15 | w [Wrapper] | main.rs:46:17:46:17 | w [Wrapper] | provenance | |
|
|
| main.rs:44:13:44:28 | Wrapper {...} [Wrapper] | main.rs:44:26:44:26 | n | provenance | |
|
|
| main.rs:44:26:44:26 | n | main.rs:44:38:44:38 | n | provenance | |
|
|
| main.rs:46:13:46:13 | u [Wrapper] | main.rs:47:15:47:15 | u [Wrapper] | provenance | |
|
|
| main.rs:46:17:46:17 | w [Wrapper] | main.rs:46:17:46:25 | w.clone(...) [Wrapper] | provenance | |
|
|
| main.rs:46:17:46:25 | w.clone(...) [Wrapper] | main.rs:46:13:46:13 | u [Wrapper] | provenance | |
|
|
| main.rs:47:15:47:15 | u [Wrapper] | main.rs:48:13:48:28 | Wrapper {...} [Wrapper] | provenance | |
|
|
| main.rs:48:13:48:28 | Wrapper {...} [Wrapper] | main.rs:48:26:48:26 | n | provenance | |
|
|
| main.rs:48:26:48:26 | n | main.rs:48:38:48:38 | n | provenance | |
|
|
nodes
|
|
| main.rs:13:9:13:9 | a [Some] | semmle.label | a [Some] |
|
|
| main.rs:13:13:13:28 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
|
| main.rs:13:18:13:27 | source(...) | semmle.label | source(...) |
|
|
| main.rs:14:10:14:10 | a [Some] | semmle.label | a [Some] |
|
|
| main.rs:14:10:14:19 | a.unwrap(...) | semmle.label | a.unwrap(...) |
|
|
| main.rs:15:9:15:9 | b [Some] | semmle.label | b [Some] |
|
|
| main.rs:15:13:15:13 | a [Some] | semmle.label | a [Some] |
|
|
| main.rs:15:13:15:21 | a.clone(...) [Some] | semmle.label | a.clone(...) [Some] |
|
|
| main.rs:16:10:16:10 | b [Some] | semmle.label | b [Some] |
|
|
| main.rs:16:10:16:19 | b.unwrap(...) | semmle.label | b.unwrap(...) |
|
|
| main.rs:20:9:20:9 | a [Ok] | semmle.label | a [Ok] |
|
|
| main.rs:20:31:20:44 | Ok(...) [Ok] | semmle.label | Ok(...) [Ok] |
|
|
| main.rs:20:34:20:43 | source(...) | semmle.label | source(...) |
|
|
| main.rs:21:10:21:10 | a [Ok] | semmle.label | a [Ok] |
|
|
| main.rs:21:10:21:19 | a.unwrap(...) | semmle.label | a.unwrap(...) |
|
|
| main.rs:22:9:22:9 | b [Ok] | semmle.label | b [Ok] |
|
|
| main.rs:22:13:22:13 | a [Ok] | semmle.label | a [Ok] |
|
|
| main.rs:22:13:22:21 | a.clone(...) [Ok] | semmle.label | a.clone(...) [Ok] |
|
|
| main.rs:23:10:23:10 | b [Ok] | semmle.label | b [Ok] |
|
|
| main.rs:23:10:23:19 | b.unwrap(...) | semmle.label | b.unwrap(...) |
|
|
| main.rs:27:9:27:9 | a | semmle.label | a |
|
|
| main.rs:27:13:27:22 | source(...) | semmle.label | source(...) |
|
|
| main.rs:28:10:28:10 | a | semmle.label | a |
|
|
| main.rs:29:9:29:9 | b | semmle.label | b |
|
|
| main.rs:29:13:29:13 | a | semmle.label | a |
|
|
| main.rs:29:13:29:21 | a.clone(...) | semmle.label | a.clone(...) |
|
|
| main.rs:30:10:30:10 | b | semmle.label | b |
|
|
| main.rs:42:13:42:13 | w [Wrapper] | semmle.label | w [Wrapper] |
|
|
| main.rs:42:17:42:41 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] |
|
|
| main.rs:42:30:42:39 | source(...) | semmle.label | source(...) |
|
|
| main.rs:43:15:43:15 | w [Wrapper] | semmle.label | w [Wrapper] |
|
|
| main.rs:44:13:44:28 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] |
|
|
| main.rs:44:26:44:26 | n | semmle.label | n |
|
|
| main.rs:44:38:44:38 | n | semmle.label | n |
|
|
| main.rs:46:13:46:13 | u [Wrapper] | semmle.label | u [Wrapper] |
|
|
| main.rs:46:17:46:17 | w [Wrapper] | semmle.label | w [Wrapper] |
|
|
| main.rs:46:17:46:25 | w.clone(...) [Wrapper] | semmle.label | w.clone(...) [Wrapper] |
|
|
| main.rs:47:15:47:15 | u [Wrapper] | semmle.label | u [Wrapper] |
|
|
| main.rs:48:13:48:28 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] |
|
|
| main.rs:48:26:48:26 | n | semmle.label | n |
|
|
| main.rs:48:38:48:38 | n | semmle.label | n |
|
|
subpaths
|
|
testFailures
|
|
#select
|
|
| main.rs:14:10:14:19 | a.unwrap(...) | main.rs:13:18:13:27 | source(...) | main.rs:14:10:14:19 | a.unwrap(...) | $@ | main.rs:13:18:13:27 | source(...) | source(...) |
|
|
| main.rs:16:10:16:19 | b.unwrap(...) | main.rs:13:18:13:27 | source(...) | main.rs:16:10:16:19 | b.unwrap(...) | $@ | main.rs:13:18:13:27 | source(...) | source(...) |
|
|
| main.rs:21:10:21:19 | a.unwrap(...) | main.rs:20:34:20:43 | source(...) | main.rs:21:10:21:19 | a.unwrap(...) | $@ | main.rs:20:34:20:43 | source(...) | source(...) |
|
|
| main.rs:23:10:23:19 | b.unwrap(...) | main.rs:20:34:20:43 | source(...) | main.rs:23:10:23:19 | b.unwrap(...) | $@ | main.rs:20:34:20:43 | source(...) | source(...) |
|
|
| main.rs:28:10:28:10 | a | main.rs:27:13:27:22 | source(...) | main.rs:28:10:28:10 | a | $@ | main.rs:27:13:27:22 | source(...) | source(...) |
|
|
| main.rs:30:10:30:10 | b | main.rs:27:13:27:22 | source(...) | main.rs:30:10:30:10 | b | $@ | main.rs:27:13:27:22 | source(...) | source(...) |
|
|
| main.rs:44:38:44:38 | n | main.rs:42:30:42:39 | source(...) | main.rs:44:38:44:38 | n | $@ | main.rs:42:30:42:39 | source(...) | source(...) |
|
|
| main.rs:48:38:48:38 | n | main.rs:42:30:42:39 | source(...) | main.rs:48:38:48:38 | n | $@ | main.rs:42:30:42:39 | source(...) | source(...) |
|