Shared: Do not use `@kind graph` for CFG test output

This commit is contained in:
Tom Hvitved 2024-09-19 14:58:46 +02:00
Родитель ec74595671
Коммит 16813240ae
9 изменённых файлов: 9891 добавлений и 29370 удалений

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,12 +1,3 @@
/**
* @kind graph
*/
import csharp
import Common
private class MyRelevantNode extends SourceControlFlowNode {
string getOrderDisambiguation() { result = "" }
}
import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl::TestOutput<MyRelevantNode>
import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl::TestOutput<SourceControlFlowNode>

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,11 +1,2 @@
/**
* @kind graph
*/
import codeql.ruby.CFG
class MyRelevantNode extends CfgNode {
string getOrderDisambiguation() { result = "" }
}
import codeql.ruby.controlflow.internal.ControlFlowGraphImpl::TestOutput<MyRelevantNode>
import codeql.ruby.controlflow.internal.ControlFlowGraphImpl::TestOutput<CfgNode>

Просмотреть файл

@ -1,650 +1,216 @@
nodes
| test.rs:1:1:4:1 | enter test_call | semmle.order | 1 |
| test.rs:1:1:4:1 | exit test_call | semmle.order | 2 |
| test.rs:1:1:4:1 | exit test_call (normal) | semmle.order | 3 |
| test.rs:1:24:4:1 | BlockExpr | semmle.order | 4 |
| test.rs:2:5:2:21 | PathExpr | semmle.order | 5 |
| test.rs:2:5:2:40 | CallExpr | semmle.order | 6 |
| test.rs:2:5:2:41 | ExprStmt | semmle.order | 7 |
| test.rs:2:23:2:26 | LiteralExpr | semmle.order | 8 |
| test.rs:2:29:2:33 | LiteralExpr | semmle.order | 9 |
| test.rs:2:36:2:39 | LiteralExpr | semmle.order | 10 |
| test.rs:3:5:3:19 | PathExpr | semmle.order | 11 |
| test.rs:3:5:3:23 | CallExpr | semmle.order | 12 |
| test.rs:3:5:3:24 | ExprStmt | semmle.order | 13 |
| test.rs:3:21:3:22 | LiteralExpr | semmle.order | 14 |
| test.rs:8:5:24:5 | enter test_break_and_continue | semmle.order | 15 |
| test.rs:8:5:24:5 | exit test_break_and_continue | semmle.order | 16 |
| test.rs:8:5:24:5 | exit test_break_and_continue (normal) | semmle.order | 17 |
| test.rs:9:9:9:22 | LetStmt | semmle.order | 18 |
| test.rs:9:13:9:17 | IdentPat | semmle.order | 19 |
| test.rs:9:21:9:21 | PathExpr | semmle.order | 20 |
| test.rs:10:9:22:9 | ExprStmt | semmle.order | 21 |
| test.rs:10:9:22:9 | LoopExpr | semmle.order | 22 |
| test.rs:10:14:22:9 | BlockExpr | semmle.order | 23 |
| test.rs:11:13:11:13 | PathExpr | semmle.order | 24 |
| test.rs:11:13:11:23 | BinaryExpr | semmle.order | 25 |
| test.rs:11:13:11:24 | ExprStmt | semmle.order | 26 |
| test.rs:11:17:11:20 | PathExpr | semmle.order | 27 |
| test.rs:11:17:11:23 | CallExpr | semmle.order | 28 |
| test.rs:11:22:11:22 | PathExpr | semmle.order | 29 |
| test.rs:12:13:14:13 | ExprStmt | semmle.order | 30 |
| test.rs:12:13:14:13 | IfExpr | semmle.order | 31 |
| test.rs:12:16:12:16 | PathExpr | semmle.order | 32 |
| test.rs:12:16:12:24 | BinaryExpr | semmle.order | 33 |
| test.rs:12:20:12:24 | LiteralExpr | semmle.order | 34 |
| test.rs:13:17:13:28 | ReturnExpr | semmle.order | 35 |
| test.rs:13:17:13:29 | ExprStmt | semmle.order | 36 |
| test.rs:13:24:13:28 | LiteralExpr | semmle.order | 37 |
| test.rs:15:13:17:13 | ExprStmt | semmle.order | 38 |
| test.rs:15:13:17:13 | IfExpr | semmle.order | 39 |
| test.rs:15:16:15:16 | PathExpr | semmle.order | 40 |
| test.rs:15:16:15:21 | BinaryExpr | semmle.order | 41 |
| test.rs:15:21:15:21 | LiteralExpr | semmle.order | 42 |
| test.rs:16:17:16:21 | BreakExpr | semmle.order | 43 |
| test.rs:16:17:16:22 | ExprStmt | semmle.order | 44 |
| test.rs:18:13:20:13 | ExprStmt | semmle.order | 45 |
| test.rs:18:13:20:13 | IfExpr | semmle.order | 46 |
| test.rs:18:16:18:16 | PathExpr | semmle.order | 47 |
| test.rs:18:16:18:20 | BinaryExpr | semmle.order | 48 |
| test.rs:18:16:18:25 | BinaryExpr | semmle.order | 49 |
| test.rs:18:20:18:20 | LiteralExpr | semmle.order | 50 |
| test.rs:18:25:18:25 | LiteralExpr | semmle.order | 51 |
| test.rs:19:17:19:24 | ContinueExpr | semmle.order | 52 |
| test.rs:19:17:19:25 | ExprStmt | semmle.order | 53 |
| test.rs:21:13:21:13 | PathExpr | semmle.order | 54 |
| test.rs:21:13:21:21 | BinaryExpr | semmle.order | 55 |
| test.rs:21:17:21:17 | PathExpr | semmle.order | 56 |
| test.rs:21:17:21:21 | BinaryExpr | semmle.order | 57 |
| test.rs:21:21:21:21 | LiteralExpr | semmle.order | 58 |
| test.rs:23:9:23:19 | ReturnExpr | semmle.order | 59 |
| test.rs:23:9:23:20 | ExprStmt | semmle.order | 60 |
| test.rs:23:16:23:19 | LiteralExpr | semmle.order | 61 |
| test.rs:26:5:38:5 | enter test_break_with_labels | semmle.order | 62 |
| test.rs:26:5:38:5 | exit test_break_with_labels | semmle.order | 63 |
| test.rs:26:5:38:5 | exit test_break_with_labels (normal) | semmle.order | 64 |
| test.rs:26:41:38:5 | BlockExpr | semmle.order | 65 |
| test.rs:27:9:36:9 | ExprStmt | semmle.order | 66 |
| test.rs:27:9:36:9 | LoopExpr | semmle.order | 67 |
| test.rs:27:22:36:9 | BlockExpr | semmle.order | 68 |
| test.rs:28:13:35:13 | LoopExpr | semmle.order | 69 |
| test.rs:29:17:33:17 | ExprStmt | semmle.order | 70 |
| test.rs:29:17:33:17 | IfExpr | semmle.order | 71 |
| test.rs:29:20:29:24 | LiteralExpr | semmle.order | 72 |
| test.rs:30:21:30:25 | BreakExpr | semmle.order | 73 |
| test.rs:30:21:30:26 | ExprStmt | semmle.order | 74 |
| test.rs:31:24:33:17 | IfExpr | semmle.order | 75 |
| test.rs:31:27:31:30 | LiteralExpr | semmle.order | 76 |
| test.rs:32:21:32:32 | BreakExpr | semmle.order | 77 |
| test.rs:32:21:32:33 | ExprStmt | semmle.order | 78 |
| test.rs:34:17:34:28 | BreakExpr | semmle.order | 79 |
| test.rs:34:17:34:29 | ExprStmt | semmle.order | 80 |
| test.rs:37:9:37:12 | LiteralExpr | semmle.order | 81 |
| test.rs:40:5:52:5 | enter test_continue_with_labels | semmle.order | 82 |
| test.rs:42:13:42:13 | LiteralExpr | semmle.order | 83 |
| test.rs:42:13:42:14 | ExprStmt | semmle.order | 84 |
| test.rs:44:17:48:17 | ExprStmt | semmle.order | 85 |
| test.rs:44:17:48:17 | IfExpr | semmle.order | 86 |
| test.rs:44:20:44:24 | LiteralExpr | semmle.order | 87 |
| test.rs:45:21:45:28 | ContinueExpr | semmle.order | 88 |
| test.rs:45:21:45:29 | ExprStmt | semmle.order | 89 |
| test.rs:46:24:48:17 | IfExpr | semmle.order | 90 |
| test.rs:46:27:46:30 | LiteralExpr | semmle.order | 91 |
| test.rs:47:21:47:35 | ContinueExpr | semmle.order | 92 |
| test.rs:47:21:47:36 | ExprStmt | semmle.order | 93 |
| test.rs:49:17:49:31 | ContinueExpr | semmle.order | 94 |
| test.rs:49:17:49:32 | ExprStmt | semmle.order | 95 |
| test.rs:55:1:58:1 | enter test_nested_function | semmle.order | 96 |
| test.rs:55:1:58:1 | exit test_nested_function | semmle.order | 97 |
| test.rs:55:1:58:1 | exit test_nested_function (normal) | semmle.order | 98 |
| test.rs:55:40:58:1 | BlockExpr | semmle.order | 99 |
| test.rs:56:5:56:28 | LetStmt | semmle.order | 100 |
| test.rs:56:9:56:15 | IdentPat | semmle.order | 101 |
| test.rs:56:19:56:27 | ClosureExpr | semmle.order | 102 |
| test.rs:56:19:56:27 | enter ClosureExpr | semmle.order | 103 |
| test.rs:56:19:56:27 | exit ClosureExpr | semmle.order | 104 |
| test.rs:56:19:56:27 | exit ClosureExpr (normal) | semmle.order | 105 |
| test.rs:56:23:56:23 | PathExpr | semmle.order | 106 |
| test.rs:56:23:56:27 | BinaryExpr | semmle.order | 107 |
| test.rs:56:27:56:27 | LiteralExpr | semmle.order | 108 |
| test.rs:57:5:57:11 | PathExpr | semmle.order | 109 |
| test.rs:57:5:57:23 | CallExpr | semmle.order | 110 |
| test.rs:57:13:57:19 | PathExpr | semmle.order | 111 |
| test.rs:57:13:57:22 | CallExpr | semmle.order | 112 |
| test.rs:57:21:57:21 | PathExpr | semmle.order | 113 |
| test.rs:62:5:68:5 | enter test_if_else | semmle.order | 114 |
| test.rs:62:5:68:5 | exit test_if_else | semmle.order | 115 |
| test.rs:62:5:68:5 | exit test_if_else (normal) | semmle.order | 116 |
| test.rs:62:36:68:5 | BlockExpr | semmle.order | 117 |
| test.rs:63:9:67:9 | IfExpr | semmle.order | 118 |
| test.rs:63:12:63:12 | PathExpr | semmle.order | 119 |
| test.rs:63:12:63:17 | BinaryExpr | semmle.order | 120 |
| test.rs:63:17:63:17 | LiteralExpr | semmle.order | 121 |
| test.rs:63:19:65:9 | BlockExpr | semmle.order | 122 |
| test.rs:64:13:64:13 | LiteralExpr | semmle.order | 123 |
| test.rs:65:16:67:9 | BlockExpr | semmle.order | 124 |
| test.rs:66:13:66:13 | PathExpr | semmle.order | 125 |
| test.rs:66:13:66:17 | BinaryExpr | semmle.order | 126 |
| test.rs:66:17:66:17 | LiteralExpr | semmle.order | 127 |
| test.rs:70:5:76:5 | enter test_if_let_else | semmle.order | 128 |
| test.rs:70:5:76:5 | exit test_if_let_else | semmle.order | 129 |
| test.rs:70:5:76:5 | exit test_if_let_else (normal) | semmle.order | 130 |
| test.rs:70:48:76:5 | BlockExpr | semmle.order | 131 |
| test.rs:71:9:75:9 | IfExpr | semmle.order | 132 |
| test.rs:71:12:71:26 | LetExpr | semmle.order | 133 |
| test.rs:71:16:71:22 | TupleStructPat | semmle.order | 134 |
| test.rs:71:28:73:9 | BlockExpr | semmle.order | 135 |
| test.rs:72:13:72:13 | PathExpr | semmle.order | 136 |
| test.rs:73:16:75:9 | BlockExpr | semmle.order | 137 |
| test.rs:74:13:74:13 | LiteralExpr | semmle.order | 138 |
| test.rs:78:5:83:5 | enter test_if_let | semmle.order | 139 |
| test.rs:78:5:83:5 | exit test_if_let | semmle.order | 140 |
| test.rs:78:5:83:5 | exit test_if_let (normal) | semmle.order | 141 |
| test.rs:78:43:83:5 | BlockExpr | semmle.order | 142 |
| test.rs:79:9:81:9 | ExprStmt | semmle.order | 143 |
| test.rs:79:9:81:9 | IfExpr | semmle.order | 144 |
| test.rs:79:12:79:26 | LetExpr | semmle.order | 145 |
| test.rs:79:16:79:22 | TupleStructPat | semmle.order | 146 |
| test.rs:79:28:81:9 | BlockExpr | semmle.order | 147 |
| test.rs:80:13:80:13 | PathExpr | semmle.order | 148 |
| test.rs:82:9:82:9 | LiteralExpr | semmle.order | 149 |
| test.rs:105:5:108:5 | enter test_and_operator | semmle.order | 150 |
| test.rs:105:5:108:5 | exit test_and_operator | semmle.order | 151 |
| test.rs:105:5:108:5 | exit test_and_operator (normal) | semmle.order | 152 |
| test.rs:105:61:108:5 | BlockExpr | semmle.order | 153 |
| test.rs:106:9:106:28 | LetStmt | semmle.order | 154 |
| test.rs:106:13:106:13 | IdentPat | semmle.order | 155 |
| test.rs:106:17:106:17 | PathExpr | semmle.order | 156 |
| test.rs:106:17:106:22 | BinaryExpr | semmle.order | 157 |
| test.rs:106:17:106:27 | BinaryExpr | semmle.order | 158 |
| test.rs:106:22:106:22 | PathExpr | semmle.order | 159 |
| test.rs:106:27:106:27 | PathExpr | semmle.order | 160 |
| test.rs:107:9:107:9 | PathExpr | semmle.order | 161 |
| test.rs:110:5:113:5 | enter test_or_operator | semmle.order | 162 |
| test.rs:110:5:113:5 | exit test_or_operator | semmle.order | 163 |
| test.rs:110:5:113:5 | exit test_or_operator (normal) | semmle.order | 164 |
| test.rs:110:60:113:5 | BlockExpr | semmle.order | 165 |
| test.rs:111:9:111:28 | LetStmt | semmle.order | 166 |
| test.rs:111:13:111:13 | IdentPat | semmle.order | 167 |
| test.rs:111:17:111:17 | PathExpr | semmle.order | 168 |
| test.rs:111:17:111:22 | BinaryExpr | semmle.order | 169 |
| test.rs:111:17:111:27 | BinaryExpr | semmle.order | 170 |
| test.rs:111:22:111:22 | PathExpr | semmle.order | 171 |
| test.rs:111:27:111:27 | PathExpr | semmle.order | 172 |
| test.rs:112:9:112:9 | PathExpr | semmle.order | 173 |
| test.rs:115:5:118:5 | enter test_or_operator_2 | semmle.order | 174 |
| test.rs:115:5:118:5 | exit test_or_operator_2 | semmle.order | 175 |
| test.rs:115:5:118:5 | exit test_or_operator_2 (normal) | semmle.order | 176 |
| test.rs:115:61:118:5 | BlockExpr | semmle.order | 177 |
| test.rs:116:9:116:36 | LetStmt | semmle.order | 178 |
| test.rs:116:13:116:13 | IdentPat | semmle.order | 179 |
| test.rs:116:17:116:17 | PathExpr | semmle.order | 180 |
| test.rs:116:17:116:30 | BinaryExpr | semmle.order | 181 |
| test.rs:116:17:116:35 | BinaryExpr | semmle.order | 182 |
| test.rs:117:9:117:9 | PathExpr | semmle.order | 183 |
| test.rs:122:1:128:1 | enter test_match | semmle.order | 184 |
| test.rs:122:1:128:1 | exit test_match | semmle.order | 185 |
| test.rs:122:1:128:1 | exit test_match (normal) | semmle.order | 186 |
| test.rs:122:44:128:1 | BlockExpr | semmle.order | 187 |
| test.rs:123:5:127:5 | MatchExpr | semmle.order | 188 |
| test.rs:123:11:123:21 | PathExpr | semmle.order | 189 |
| test.rs:124:9:124:23 | TupleStructPat | semmle.order | 190 |
| test.rs:124:28:124:28 | PathExpr | semmle.order | 191 |
| test.rs:124:28:124:33 | BinaryExpr | semmle.order | 192 |
| test.rs:124:32:124:33 | LiteralExpr | semmle.order | 193 |
| test.rs:125:9:125:23 | TupleStructPat | semmle.order | 194 |
| test.rs:125:28:125:28 | PathExpr | semmle.order | 195 |
| test.rs:126:9:126:20 | PathPat | semmle.order | 196 |
| test.rs:126:25:126:25 | LiteralExpr | semmle.order | 197 |
| test.rs:131:5:136:5 | enter test_infinite_loop | semmle.order | 198 |
| test.rs:132:9:134:9 | ExprStmt | semmle.order | 199 |
| test.rs:132:14:134:9 | BlockExpr | semmle.order | 200 |
| test.rs:133:13:133:13 | LiteralExpr | semmle.order | 201 |
| test.rs:138:5:143:5 | enter test_let_match | semmle.order | 202 |
| test.rs:138:5:143:5 | exit test_let_match | semmle.order | 203 |
| test.rs:138:5:143:5 | exit test_let_match (normal) | semmle.order | 204 |
| test.rs:138:39:143:5 | BlockExpr | semmle.order | 205 |
| test.rs:139:9:141:10 | LetStmt | semmle.order | 206 |
| test.rs:139:13:139:19 | TupleStructPat | semmle.order | 207 |
| test.rs:139:23:139:23 | PathExpr | semmle.order | 208 |
| test.rs:139:30:141:9 | BlockExpr | semmle.order | 209 |
| test.rs:140:13:140:27 | LiteralExpr | semmle.order | 210 |
| test.rs:142:9:142:9 | PathExpr | semmle.order | 211 |
edges
| test.rs:1:1:4:1 | enter test_call | test.rs:2:5:2:41 | ExprStmt | semmle.label | |
| test.rs:1:1:4:1 | enter test_call | test.rs:2:5:2:41 | ExprStmt | semmle.order | 1 |
| test.rs:1:1:4:1 | exit test_call (normal) | test.rs:1:1:4:1 | exit test_call | semmle.label | |
| test.rs:1:1:4:1 | exit test_call (normal) | test.rs:1:1:4:1 | exit test_call | semmle.order | 1 |
| test.rs:1:24:4:1 | BlockExpr | test.rs:1:1:4:1 | exit test_call (normal) | semmle.label | |
| test.rs:1:24:4:1 | BlockExpr | test.rs:1:1:4:1 | exit test_call (normal) | semmle.order | 1 |
| test.rs:2:5:2:21 | PathExpr | test.rs:2:23:2:26 | LiteralExpr | semmle.label | |
| test.rs:2:5:2:21 | PathExpr | test.rs:2:23:2:26 | LiteralExpr | semmle.order | 1 |
| test.rs:2:5:2:40 | CallExpr | test.rs:3:5:3:24 | ExprStmt | semmle.label | |
| test.rs:2:5:2:40 | CallExpr | test.rs:3:5:3:24 | ExprStmt | semmle.order | 1 |
| test.rs:2:5:2:41 | ExprStmt | test.rs:2:5:2:21 | PathExpr | semmle.label | |
| test.rs:2:5:2:41 | ExprStmt | test.rs:2:5:2:21 | PathExpr | semmle.order | 1 |
| test.rs:2:23:2:26 | LiteralExpr | test.rs:2:29:2:33 | LiteralExpr | semmle.label | |
| test.rs:2:23:2:26 | LiteralExpr | test.rs:2:29:2:33 | LiteralExpr | semmle.order | 1 |
| test.rs:2:29:2:33 | LiteralExpr | test.rs:2:36:2:39 | LiteralExpr | semmle.label | |
| test.rs:2:29:2:33 | LiteralExpr | test.rs:2:36:2:39 | LiteralExpr | semmle.order | 1 |
| test.rs:2:36:2:39 | LiteralExpr | test.rs:2:5:2:40 | CallExpr | semmle.label | |
| test.rs:2:36:2:39 | LiteralExpr | test.rs:2:5:2:40 | CallExpr | semmle.order | 1 |
| test.rs:3:5:3:19 | PathExpr | test.rs:3:21:3:22 | LiteralExpr | semmle.label | |
| test.rs:3:5:3:19 | PathExpr | test.rs:3:21:3:22 | LiteralExpr | semmle.order | 1 |
| test.rs:3:5:3:23 | CallExpr | test.rs:1:24:4:1 | BlockExpr | semmle.label | |
| test.rs:3:5:3:23 | CallExpr | test.rs:1:24:4:1 | BlockExpr | semmle.order | 1 |
| test.rs:3:5:3:24 | ExprStmt | test.rs:3:5:3:19 | PathExpr | semmle.label | |
| test.rs:3:5:3:24 | ExprStmt | test.rs:3:5:3:19 | PathExpr | semmle.order | 1 |
| test.rs:3:21:3:22 | LiteralExpr | test.rs:3:5:3:23 | CallExpr | semmle.label | |
| test.rs:3:21:3:22 | LiteralExpr | test.rs:3:5:3:23 | CallExpr | semmle.order | 1 |
| test.rs:8:5:24:5 | enter test_break_and_continue | test.rs:9:9:9:22 | LetStmt | semmle.label | |
| test.rs:8:5:24:5 | enter test_break_and_continue | test.rs:9:9:9:22 | LetStmt | semmle.order | 1 |
| test.rs:8:5:24:5 | exit test_break_and_continue (normal) | test.rs:8:5:24:5 | exit test_break_and_continue | semmle.label | |
| test.rs:8:5:24:5 | exit test_break_and_continue (normal) | test.rs:8:5:24:5 | exit test_break_and_continue | semmle.order | 1 |
| test.rs:9:9:9:22 | LetStmt | test.rs:9:21:9:21 | PathExpr | semmle.label | |
| test.rs:9:9:9:22 | LetStmt | test.rs:9:21:9:21 | PathExpr | semmle.order | 1 |
| test.rs:9:13:9:17 | IdentPat | test.rs:10:9:22:9 | ExprStmt | semmle.label | match, no-match |
| test.rs:9:13:9:17 | IdentPat | test.rs:10:9:22:9 | ExprStmt | semmle.order | 1 |
| test.rs:9:13:9:17 | IdentPat | test.rs:10:9:22:9 | ExprStmt | semmle.order | 2 |
| test.rs:9:21:9:21 | PathExpr | test.rs:9:13:9:17 | IdentPat | semmle.label | |
| test.rs:9:21:9:21 | PathExpr | test.rs:9:13:9:17 | IdentPat | semmle.order | 1 |
| test.rs:10:9:22:9 | ExprStmt | test.rs:11:13:11:24 | ExprStmt | semmle.label | |
| test.rs:10:9:22:9 | ExprStmt | test.rs:11:13:11:24 | ExprStmt | semmle.order | 1 |
| test.rs:10:9:22:9 | LoopExpr | test.rs:23:9:23:20 | ExprStmt | semmle.label | |
| test.rs:10:9:22:9 | LoopExpr | test.rs:23:9:23:20 | ExprStmt | semmle.order | 1 |
| test.rs:10:14:22:9 | BlockExpr | test.rs:11:13:11:24 | ExprStmt | semmle.label | |
| test.rs:10:14:22:9 | BlockExpr | test.rs:11:13:11:24 | ExprStmt | semmle.order | 1 |
| test.rs:11:13:11:13 | PathExpr | test.rs:11:17:11:20 | PathExpr | semmle.label | |
| test.rs:11:13:11:13 | PathExpr | test.rs:11:17:11:20 | PathExpr | semmle.order | 1 |
| test.rs:11:13:11:23 | BinaryExpr | test.rs:12:13:14:13 | ExprStmt | semmle.label | |
| test.rs:11:13:11:23 | BinaryExpr | test.rs:12:13:14:13 | ExprStmt | semmle.order | 1 |
| test.rs:11:13:11:24 | ExprStmt | test.rs:11:13:11:13 | PathExpr | semmle.label | |
| test.rs:11:13:11:24 | ExprStmt | test.rs:11:13:11:13 | PathExpr | semmle.order | 1 |
| test.rs:11:17:11:20 | PathExpr | test.rs:11:22:11:22 | PathExpr | semmle.label | |
| test.rs:11:17:11:20 | PathExpr | test.rs:11:22:11:22 | PathExpr | semmle.order | 1 |
| test.rs:11:17:11:23 | CallExpr | test.rs:11:13:11:23 | BinaryExpr | semmle.label | |
| test.rs:11:17:11:23 | CallExpr | test.rs:11:13:11:23 | BinaryExpr | semmle.order | 1 |
| test.rs:11:22:11:22 | PathExpr | test.rs:11:17:11:23 | CallExpr | semmle.label | |
| test.rs:11:22:11:22 | PathExpr | test.rs:11:17:11:23 | CallExpr | semmle.order | 1 |
| test.rs:12:13:14:13 | ExprStmt | test.rs:12:16:12:16 | PathExpr | semmle.label | |
| test.rs:12:13:14:13 | ExprStmt | test.rs:12:16:12:16 | PathExpr | semmle.order | 1 |
| test.rs:12:13:14:13 | IfExpr | test.rs:15:13:17:13 | ExprStmt | semmle.label | |
| test.rs:12:13:14:13 | IfExpr | test.rs:15:13:17:13 | ExprStmt | semmle.order | 1 |
| test.rs:12:16:12:16 | PathExpr | test.rs:12:20:12:24 | LiteralExpr | semmle.label | |
| test.rs:12:16:12:16 | PathExpr | test.rs:12:20:12:24 | LiteralExpr | semmle.order | 1 |
| test.rs:12:16:12:24 | BinaryExpr | test.rs:12:13:14:13 | IfExpr | semmle.label | false |
| test.rs:12:16:12:24 | BinaryExpr | test.rs:12:13:14:13 | IfExpr | semmle.order | 1 |
| test.rs:12:16:12:24 | BinaryExpr | test.rs:13:17:13:29 | ExprStmt | semmle.label | true |
| test.rs:12:16:12:24 | BinaryExpr | test.rs:13:17:13:29 | ExprStmt | semmle.order | 2 |
| test.rs:12:20:12:24 | LiteralExpr | test.rs:12:16:12:24 | BinaryExpr | semmle.label | |
| test.rs:12:20:12:24 | LiteralExpr | test.rs:12:16:12:24 | BinaryExpr | semmle.order | 1 |
| test.rs:13:17:13:28 | ReturnExpr | test.rs:8:5:24:5 | exit test_break_and_continue (normal) | semmle.label | return |
| test.rs:13:17:13:28 | ReturnExpr | test.rs:8:5:24:5 | exit test_break_and_continue (normal) | semmle.order | 1 |
| test.rs:13:17:13:29 | ExprStmt | test.rs:13:24:13:28 | LiteralExpr | semmle.label | |
| test.rs:13:17:13:29 | ExprStmt | test.rs:13:24:13:28 | LiteralExpr | semmle.order | 1 |
| test.rs:13:24:13:28 | LiteralExpr | test.rs:13:17:13:28 | ReturnExpr | semmle.label | |
| test.rs:13:24:13:28 | LiteralExpr | test.rs:13:17:13:28 | ReturnExpr | semmle.order | 1 |
| test.rs:15:13:17:13 | ExprStmt | test.rs:15:16:15:16 | PathExpr | semmle.label | |
| test.rs:15:13:17:13 | ExprStmt | test.rs:15:16:15:16 | PathExpr | semmle.order | 1 |
| test.rs:15:13:17:13 | IfExpr | test.rs:18:13:20:13 | ExprStmt | semmle.label | |
| test.rs:15:13:17:13 | IfExpr | test.rs:18:13:20:13 | ExprStmt | semmle.order | 1 |
| test.rs:15:16:15:16 | PathExpr | test.rs:15:21:15:21 | LiteralExpr | semmle.label | |
| test.rs:15:16:15:16 | PathExpr | test.rs:15:21:15:21 | LiteralExpr | semmle.order | 1 |
| test.rs:15:16:15:21 | BinaryExpr | test.rs:15:13:17:13 | IfExpr | semmle.label | false |
| test.rs:15:16:15:21 | BinaryExpr | test.rs:15:13:17:13 | IfExpr | semmle.order | 1 |
| test.rs:15:16:15:21 | BinaryExpr | test.rs:16:17:16:22 | ExprStmt | semmle.label | true |
| test.rs:15:16:15:21 | BinaryExpr | test.rs:16:17:16:22 | ExprStmt | semmle.order | 2 |
| test.rs:15:21:15:21 | LiteralExpr | test.rs:15:16:15:21 | BinaryExpr | semmle.label | |
| test.rs:15:21:15:21 | LiteralExpr | test.rs:15:16:15:21 | BinaryExpr | semmle.order | 1 |
| test.rs:16:17:16:21 | BreakExpr | test.rs:10:9:22:9 | LoopExpr | semmle.label | break |
| test.rs:16:17:16:21 | BreakExpr | test.rs:10:9:22:9 | LoopExpr | semmle.order | 1 |
| test.rs:16:17:16:22 | ExprStmt | test.rs:16:17:16:21 | BreakExpr | semmle.label | |
| test.rs:16:17:16:22 | ExprStmt | test.rs:16:17:16:21 | BreakExpr | semmle.order | 1 |
| test.rs:18:13:20:13 | ExprStmt | test.rs:18:16:18:16 | PathExpr | semmle.label | |
| test.rs:18:13:20:13 | ExprStmt | test.rs:18:16:18:16 | PathExpr | semmle.order | 1 |
| test.rs:18:13:20:13 | IfExpr | test.rs:21:13:21:13 | PathExpr | semmle.label | |
| test.rs:18:13:20:13 | IfExpr | test.rs:21:13:21:13 | PathExpr | semmle.order | 1 |
| test.rs:18:16:18:16 | PathExpr | test.rs:18:20:18:20 | LiteralExpr | semmle.label | |
| test.rs:18:16:18:16 | PathExpr | test.rs:18:20:18:20 | LiteralExpr | semmle.order | 1 |
| test.rs:18:16:18:20 | BinaryExpr | test.rs:18:25:18:25 | LiteralExpr | semmle.label | |
| test.rs:18:16:18:20 | BinaryExpr | test.rs:18:25:18:25 | LiteralExpr | semmle.order | 1 |
| test.rs:18:16:18:25 | BinaryExpr | test.rs:18:13:20:13 | IfExpr | semmle.label | false |
| test.rs:18:16:18:25 | BinaryExpr | test.rs:18:13:20:13 | IfExpr | semmle.order | 1 |
| test.rs:18:16:18:25 | BinaryExpr | test.rs:19:17:19:25 | ExprStmt | semmle.label | true |
| test.rs:18:16:18:25 | BinaryExpr | test.rs:19:17:19:25 | ExprStmt | semmle.order | 2 |
| test.rs:18:20:18:20 | LiteralExpr | test.rs:18:16:18:20 | BinaryExpr | semmle.label | |
| test.rs:18:20:18:20 | LiteralExpr | test.rs:18:16:18:20 | BinaryExpr | semmle.order | 1 |
| test.rs:18:25:18:25 | LiteralExpr | test.rs:18:16:18:25 | BinaryExpr | semmle.label | |
| test.rs:18:25:18:25 | LiteralExpr | test.rs:18:16:18:25 | BinaryExpr | semmle.order | 1 |
| test.rs:19:17:19:24 | ContinueExpr | test.rs:11:13:11:24 | ExprStmt | semmle.label | continue |
| test.rs:19:17:19:24 | ContinueExpr | test.rs:11:13:11:24 | ExprStmt | semmle.order | 1 |
| test.rs:19:17:19:25 | ExprStmt | test.rs:19:17:19:24 | ContinueExpr | semmle.label | |
| test.rs:19:17:19:25 | ExprStmt | test.rs:19:17:19:24 | ContinueExpr | semmle.order | 1 |
| test.rs:21:13:21:13 | PathExpr | test.rs:21:17:21:17 | PathExpr | semmle.label | |
| test.rs:21:13:21:13 | PathExpr | test.rs:21:17:21:17 | PathExpr | semmle.order | 1 |
| test.rs:21:13:21:21 | BinaryExpr | test.rs:10:14:22:9 | BlockExpr | semmle.label | |
| test.rs:21:13:21:21 | BinaryExpr | test.rs:10:14:22:9 | BlockExpr | semmle.order | 1 |
| test.rs:21:17:21:17 | PathExpr | test.rs:21:21:21:21 | LiteralExpr | semmle.label | |
| test.rs:21:17:21:17 | PathExpr | test.rs:21:21:21:21 | LiteralExpr | semmle.order | 1 |
| test.rs:21:17:21:21 | BinaryExpr | test.rs:21:13:21:21 | BinaryExpr | semmle.label | |
| test.rs:21:17:21:21 | BinaryExpr | test.rs:21:13:21:21 | BinaryExpr | semmle.order | 1 |
| test.rs:21:21:21:21 | LiteralExpr | test.rs:21:17:21:21 | BinaryExpr | semmle.label | |
| test.rs:21:21:21:21 | LiteralExpr | test.rs:21:17:21:21 | BinaryExpr | semmle.order | 1 |
| test.rs:23:9:23:19 | ReturnExpr | test.rs:8:5:24:5 | exit test_break_and_continue (normal) | semmle.label | return |
| test.rs:23:9:23:19 | ReturnExpr | test.rs:8:5:24:5 | exit test_break_and_continue (normal) | semmle.order | 1 |
| test.rs:23:9:23:20 | ExprStmt | test.rs:23:16:23:19 | LiteralExpr | semmle.label | |
| test.rs:23:9:23:20 | ExprStmt | test.rs:23:16:23:19 | LiteralExpr | semmle.order | 1 |
| test.rs:23:16:23:19 | LiteralExpr | test.rs:23:9:23:19 | ReturnExpr | semmle.label | |
| test.rs:23:16:23:19 | LiteralExpr | test.rs:23:9:23:19 | ReturnExpr | semmle.order | 1 |
| test.rs:26:5:38:5 | enter test_break_with_labels | test.rs:27:9:36:9 | ExprStmt | semmle.label | |
| test.rs:26:5:38:5 | enter test_break_with_labels | test.rs:27:9:36:9 | ExprStmt | semmle.order | 1 |
| test.rs:26:5:38:5 | exit test_break_with_labels (normal) | test.rs:26:5:38:5 | exit test_break_with_labels | semmle.label | |
| test.rs:26:5:38:5 | exit test_break_with_labels (normal) | test.rs:26:5:38:5 | exit test_break_with_labels | semmle.order | 1 |
| test.rs:26:41:38:5 | BlockExpr | test.rs:26:5:38:5 | exit test_break_with_labels (normal) | semmle.label | |
| test.rs:26:41:38:5 | BlockExpr | test.rs:26:5:38:5 | exit test_break_with_labels (normal) | semmle.order | 1 |
| test.rs:27:9:36:9 | ExprStmt | test.rs:29:17:33:17 | ExprStmt | semmle.label | |
| test.rs:27:9:36:9 | ExprStmt | test.rs:29:17:33:17 | ExprStmt | semmle.order | 1 |
| test.rs:27:9:36:9 | LoopExpr | test.rs:37:9:37:12 | LiteralExpr | semmle.label | |
| test.rs:27:9:36:9 | LoopExpr | test.rs:37:9:37:12 | LiteralExpr | semmle.order | 1 |
| test.rs:27:22:36:9 | BlockExpr | test.rs:29:17:33:17 | ExprStmt | semmle.label | |
| test.rs:27:22:36:9 | BlockExpr | test.rs:29:17:33:17 | ExprStmt | semmle.order | 1 |
| test.rs:28:13:35:13 | LoopExpr | test.rs:27:22:36:9 | BlockExpr | semmle.label | |
| test.rs:28:13:35:13 | LoopExpr | test.rs:27:22:36:9 | BlockExpr | semmle.order | 1 |
| test.rs:29:17:33:17 | ExprStmt | test.rs:29:20:29:24 | LiteralExpr | semmle.label | |
| test.rs:29:17:33:17 | ExprStmt | test.rs:29:20:29:24 | LiteralExpr | semmle.order | 1 |
| test.rs:29:17:33:17 | IfExpr | test.rs:34:17:34:29 | ExprStmt | semmle.label | |
| test.rs:29:17:33:17 | IfExpr | test.rs:34:17:34:29 | ExprStmt | semmle.order | 1 |
| test.rs:29:20:29:24 | LiteralExpr | test.rs:30:21:30:26 | ExprStmt | semmle.label | true |
| test.rs:29:20:29:24 | LiteralExpr | test.rs:30:21:30:26 | ExprStmt | semmle.order | 1 |
| test.rs:29:20:29:24 | LiteralExpr | test.rs:31:27:31:30 | LiteralExpr | semmle.label | false |
| test.rs:29:20:29:24 | LiteralExpr | test.rs:31:27:31:30 | LiteralExpr | semmle.order | 2 |
| test.rs:30:21:30:25 | BreakExpr | test.rs:28:13:35:13 | LoopExpr | semmle.label | break |
| test.rs:30:21:30:25 | BreakExpr | test.rs:28:13:35:13 | LoopExpr | semmle.order | 1 |
| test.rs:30:21:30:26 | ExprStmt | test.rs:30:21:30:25 | BreakExpr | semmle.label | |
| test.rs:30:21:30:26 | ExprStmt | test.rs:30:21:30:25 | BreakExpr | semmle.order | 1 |
| test.rs:31:24:33:17 | IfExpr | test.rs:29:17:33:17 | IfExpr | semmle.label | |
| test.rs:31:24:33:17 | IfExpr | test.rs:29:17:33:17 | IfExpr | semmle.order | 1 |
| test.rs:31:27:31:30 | LiteralExpr | test.rs:31:24:33:17 | IfExpr | semmle.label | false |
| test.rs:31:27:31:30 | LiteralExpr | test.rs:31:24:33:17 | IfExpr | semmle.order | 1 |
| test.rs:31:27:31:30 | LiteralExpr | test.rs:32:21:32:33 | ExprStmt | semmle.label | true |
| test.rs:31:27:31:30 | LiteralExpr | test.rs:32:21:32:33 | ExprStmt | semmle.order | 2 |
| test.rs:32:21:32:32 | BreakExpr | test.rs:27:9:36:9 | LoopExpr | semmle.label | break('outer) |
| test.rs:32:21:32:32 | BreakExpr | test.rs:27:9:36:9 | LoopExpr | semmle.order | 1 |
| test.rs:32:21:32:33 | ExprStmt | test.rs:32:21:32:32 | BreakExpr | semmle.label | |
| test.rs:32:21:32:33 | ExprStmt | test.rs:32:21:32:32 | BreakExpr | semmle.order | 1 |
| test.rs:34:17:34:28 | BreakExpr | test.rs:28:13:35:13 | LoopExpr | semmle.label | break('inner) |
| test.rs:34:17:34:28 | BreakExpr | test.rs:28:13:35:13 | LoopExpr | semmle.order | 1 |
| test.rs:34:17:34:29 | ExprStmt | test.rs:34:17:34:28 | BreakExpr | semmle.label | |
| test.rs:34:17:34:29 | ExprStmt | test.rs:34:17:34:28 | BreakExpr | semmle.order | 1 |
| test.rs:37:9:37:12 | LiteralExpr | test.rs:26:41:38:5 | BlockExpr | semmle.label | |
| test.rs:37:9:37:12 | LiteralExpr | test.rs:26:41:38:5 | BlockExpr | semmle.order | 1 |
| test.rs:40:5:52:5 | enter test_continue_with_labels | test.rs:42:13:42:14 | ExprStmt | semmle.label | |
| test.rs:40:5:52:5 | enter test_continue_with_labels | test.rs:42:13:42:14 | ExprStmt | semmle.order | 1 |
| test.rs:42:13:42:13 | LiteralExpr | test.rs:44:17:48:17 | ExprStmt | semmle.label | |
| test.rs:42:13:42:13 | LiteralExpr | test.rs:44:17:48:17 | ExprStmt | semmle.order | 1 |
| test.rs:42:13:42:14 | ExprStmt | test.rs:42:13:42:13 | LiteralExpr | semmle.label | |
| test.rs:42:13:42:14 | ExprStmt | test.rs:42:13:42:13 | LiteralExpr | semmle.order | 1 |
| test.rs:44:17:48:17 | ExprStmt | test.rs:44:20:44:24 | LiteralExpr | semmle.label | |
| test.rs:44:17:48:17 | ExprStmt | test.rs:44:20:44:24 | LiteralExpr | semmle.order | 1 |
| test.rs:44:17:48:17 | IfExpr | test.rs:49:17:49:32 | ExprStmt | semmle.label | |
| test.rs:44:17:48:17 | IfExpr | test.rs:49:17:49:32 | ExprStmt | semmle.order | 1 |
| test.rs:44:20:44:24 | LiteralExpr | test.rs:45:21:45:29 | ExprStmt | semmle.label | true |
| test.rs:44:20:44:24 | LiteralExpr | test.rs:45:21:45:29 | ExprStmt | semmle.order | 1 |
| test.rs:44:20:44:24 | LiteralExpr | test.rs:46:27:46:30 | LiteralExpr | semmle.label | false |
| test.rs:44:20:44:24 | LiteralExpr | test.rs:46:27:46:30 | LiteralExpr | semmle.order | 2 |
| test.rs:45:21:45:28 | ContinueExpr | test.rs:44:17:48:17 | ExprStmt | semmle.label | continue |
| test.rs:45:21:45:28 | ContinueExpr | test.rs:44:17:48:17 | ExprStmt | semmle.order | 1 |
| test.rs:45:21:45:29 | ExprStmt | test.rs:45:21:45:28 | ContinueExpr | semmle.label | |
| test.rs:45:21:45:29 | ExprStmt | test.rs:45:21:45:28 | ContinueExpr | semmle.order | 1 |
| test.rs:46:24:48:17 | IfExpr | test.rs:44:17:48:17 | IfExpr | semmle.label | |
| test.rs:46:24:48:17 | IfExpr | test.rs:44:17:48:17 | IfExpr | semmle.order | 1 |
| test.rs:46:27:46:30 | LiteralExpr | test.rs:46:24:48:17 | IfExpr | semmle.label | false |
| test.rs:46:27:46:30 | LiteralExpr | test.rs:46:24:48:17 | IfExpr | semmle.order | 1 |
| test.rs:46:27:46:30 | LiteralExpr | test.rs:47:21:47:36 | ExprStmt | semmle.label | true |
| test.rs:46:27:46:30 | LiteralExpr | test.rs:47:21:47:36 | ExprStmt | semmle.order | 2 |
| test.rs:47:21:47:35 | ContinueExpr | test.rs:42:13:42:14 | ExprStmt | semmle.label | continue('outer) |
| test.rs:47:21:47:35 | ContinueExpr | test.rs:42:13:42:14 | ExprStmt | semmle.order | 1 |
| test.rs:47:21:47:36 | ExprStmt | test.rs:47:21:47:35 | ContinueExpr | semmle.label | |
| test.rs:47:21:47:36 | ExprStmt | test.rs:47:21:47:35 | ContinueExpr | semmle.order | 1 |
| test.rs:49:17:49:31 | ContinueExpr | test.rs:44:17:48:17 | ExprStmt | semmle.label | continue('inner) |
| test.rs:49:17:49:31 | ContinueExpr | test.rs:44:17:48:17 | ExprStmt | semmle.order | 1 |
| test.rs:49:17:49:32 | ExprStmt | test.rs:49:17:49:31 | ContinueExpr | semmle.label | |
| test.rs:49:17:49:32 | ExprStmt | test.rs:49:17:49:31 | ContinueExpr | semmle.order | 1 |
| test.rs:55:1:58:1 | enter test_nested_function | test.rs:56:5:56:28 | LetStmt | semmle.label | |
| test.rs:55:1:58:1 | enter test_nested_function | test.rs:56:5:56:28 | LetStmt | semmle.order | 1 |
| test.rs:55:1:58:1 | exit test_nested_function (normal) | test.rs:55:1:58:1 | exit test_nested_function | semmle.label | |
| test.rs:55:1:58:1 | exit test_nested_function (normal) | test.rs:55:1:58:1 | exit test_nested_function | semmle.order | 1 |
| test.rs:55:40:58:1 | BlockExpr | test.rs:55:1:58:1 | exit test_nested_function (normal) | semmle.label | |
| test.rs:55:40:58:1 | BlockExpr | test.rs:55:1:58:1 | exit test_nested_function (normal) | semmle.order | 1 |
| test.rs:56:5:56:28 | LetStmt | test.rs:56:19:56:27 | ClosureExpr | semmle.label | |
| test.rs:56:5:56:28 | LetStmt | test.rs:56:19:56:27 | ClosureExpr | semmle.order | 1 |
| test.rs:56:9:56:15 | IdentPat | test.rs:57:5:57:11 | PathExpr | semmle.label | match, no-match |
| test.rs:56:9:56:15 | IdentPat | test.rs:57:5:57:11 | PathExpr | semmle.order | 1 |
| test.rs:56:9:56:15 | IdentPat | test.rs:57:5:57:11 | PathExpr | semmle.order | 2 |
| test.rs:56:19:56:27 | ClosureExpr | test.rs:56:9:56:15 | IdentPat | semmle.label | |
| test.rs:56:19:56:27 | ClosureExpr | test.rs:56:9:56:15 | IdentPat | semmle.order | 1 |
| test.rs:56:19:56:27 | enter ClosureExpr | test.rs:56:23:56:23 | PathExpr | semmle.label | |
| test.rs:56:19:56:27 | enter ClosureExpr | test.rs:56:23:56:23 | PathExpr | semmle.order | 1 |
| test.rs:56:19:56:27 | exit ClosureExpr (normal) | test.rs:56:19:56:27 | exit ClosureExpr | semmle.label | |
| test.rs:56:19:56:27 | exit ClosureExpr (normal) | test.rs:56:19:56:27 | exit ClosureExpr | semmle.order | 1 |
| test.rs:56:23:56:23 | PathExpr | test.rs:56:27:56:27 | LiteralExpr | semmle.label | |
| test.rs:56:23:56:23 | PathExpr | test.rs:56:27:56:27 | LiteralExpr | semmle.order | 1 |
| test.rs:56:23:56:27 | BinaryExpr | test.rs:56:19:56:27 | exit ClosureExpr (normal) | semmle.label | |
| test.rs:56:23:56:27 | BinaryExpr | test.rs:56:19:56:27 | exit ClosureExpr (normal) | semmle.order | 1 |
| test.rs:56:27:56:27 | LiteralExpr | test.rs:56:23:56:27 | BinaryExpr | semmle.label | |
| test.rs:56:27:56:27 | LiteralExpr | test.rs:56:23:56:27 | BinaryExpr | semmle.order | 1 |
| test.rs:57:5:57:11 | PathExpr | test.rs:57:13:57:19 | PathExpr | semmle.label | |
| test.rs:57:5:57:11 | PathExpr | test.rs:57:13:57:19 | PathExpr | semmle.order | 1 |
| test.rs:57:5:57:23 | CallExpr | test.rs:55:40:58:1 | BlockExpr | semmle.label | |
| test.rs:57:5:57:23 | CallExpr | test.rs:55:40:58:1 | BlockExpr | semmle.order | 1 |
| test.rs:57:13:57:19 | PathExpr | test.rs:57:21:57:21 | PathExpr | semmle.label | |
| test.rs:57:13:57:19 | PathExpr | test.rs:57:21:57:21 | PathExpr | semmle.order | 1 |
| test.rs:57:13:57:22 | CallExpr | test.rs:57:5:57:23 | CallExpr | semmle.label | |
| test.rs:57:13:57:22 | CallExpr | test.rs:57:5:57:23 | CallExpr | semmle.order | 1 |
| test.rs:57:21:57:21 | PathExpr | test.rs:57:13:57:22 | CallExpr | semmle.label | |
| test.rs:57:21:57:21 | PathExpr | test.rs:57:13:57:22 | CallExpr | semmle.order | 1 |
| test.rs:62:5:68:5 | enter test_if_else | test.rs:63:12:63:12 | PathExpr | semmle.label | |
| test.rs:62:5:68:5 | enter test_if_else | test.rs:63:12:63:12 | PathExpr | semmle.order | 1 |
| test.rs:62:5:68:5 | exit test_if_else (normal) | test.rs:62:5:68:5 | exit test_if_else | semmle.label | |
| test.rs:62:5:68:5 | exit test_if_else (normal) | test.rs:62:5:68:5 | exit test_if_else | semmle.order | 1 |
| test.rs:62:36:68:5 | BlockExpr | test.rs:62:5:68:5 | exit test_if_else (normal) | semmle.label | |
| test.rs:62:36:68:5 | BlockExpr | test.rs:62:5:68:5 | exit test_if_else (normal) | semmle.order | 1 |
| test.rs:63:9:67:9 | IfExpr | test.rs:62:36:68:5 | BlockExpr | semmle.label | |
| test.rs:63:9:67:9 | IfExpr | test.rs:62:36:68:5 | BlockExpr | semmle.order | 1 |
| test.rs:63:12:63:12 | PathExpr | test.rs:63:17:63:17 | LiteralExpr | semmle.label | |
| test.rs:63:12:63:12 | PathExpr | test.rs:63:17:63:17 | LiteralExpr | semmle.order | 1 |
| test.rs:63:12:63:17 | BinaryExpr | test.rs:64:13:64:13 | LiteralExpr | semmle.label | true |
| test.rs:63:12:63:17 | BinaryExpr | test.rs:64:13:64:13 | LiteralExpr | semmle.order | 1 |
| test.rs:63:12:63:17 | BinaryExpr | test.rs:66:13:66:13 | PathExpr | semmle.label | false |
| test.rs:63:12:63:17 | BinaryExpr | test.rs:66:13:66:13 | PathExpr | semmle.order | 2 |
| test.rs:63:17:63:17 | LiteralExpr | test.rs:63:12:63:17 | BinaryExpr | semmle.label | |
| test.rs:63:17:63:17 | LiteralExpr | test.rs:63:12:63:17 | BinaryExpr | semmle.order | 1 |
| test.rs:63:19:65:9 | BlockExpr | test.rs:63:9:67:9 | IfExpr | semmle.label | |
| test.rs:63:19:65:9 | BlockExpr | test.rs:63:9:67:9 | IfExpr | semmle.order | 1 |
| test.rs:64:13:64:13 | LiteralExpr | test.rs:63:19:65:9 | BlockExpr | semmle.label | |
| test.rs:64:13:64:13 | LiteralExpr | test.rs:63:19:65:9 | BlockExpr | semmle.order | 1 |
| test.rs:65:16:67:9 | BlockExpr | test.rs:63:9:67:9 | IfExpr | semmle.label | |
| test.rs:65:16:67:9 | BlockExpr | test.rs:63:9:67:9 | IfExpr | semmle.order | 1 |
| test.rs:66:13:66:13 | PathExpr | test.rs:66:17:66:17 | LiteralExpr | semmle.label | |
| test.rs:66:13:66:13 | PathExpr | test.rs:66:17:66:17 | LiteralExpr | semmle.order | 1 |
| test.rs:66:13:66:17 | BinaryExpr | test.rs:65:16:67:9 | BlockExpr | semmle.label | |
| test.rs:66:13:66:17 | BinaryExpr | test.rs:65:16:67:9 | BlockExpr | semmle.order | 1 |
| test.rs:66:17:66:17 | LiteralExpr | test.rs:66:13:66:17 | BinaryExpr | semmle.label | |
| test.rs:66:17:66:17 | LiteralExpr | test.rs:66:13:66:17 | BinaryExpr | semmle.order | 1 |
| test.rs:70:5:76:5 | enter test_if_let_else | test.rs:71:12:71:26 | LetExpr | semmle.label | |
| test.rs:70:5:76:5 | enter test_if_let_else | test.rs:71:12:71:26 | LetExpr | semmle.order | 1 |
| test.rs:70:5:76:5 | exit test_if_let_else (normal) | test.rs:70:5:76:5 | exit test_if_let_else | semmle.label | |
| test.rs:70:5:76:5 | exit test_if_let_else (normal) | test.rs:70:5:76:5 | exit test_if_let_else | semmle.order | 1 |
| test.rs:70:48:76:5 | BlockExpr | test.rs:70:5:76:5 | exit test_if_let_else (normal) | semmle.label | |
| test.rs:70:48:76:5 | BlockExpr | test.rs:70:5:76:5 | exit test_if_let_else (normal) | semmle.order | 1 |
| test.rs:71:9:75:9 | IfExpr | test.rs:70:48:76:5 | BlockExpr | semmle.label | |
| test.rs:71:9:75:9 | IfExpr | test.rs:70:48:76:5 | BlockExpr | semmle.order | 1 |
| test.rs:71:12:71:26 | LetExpr | test.rs:71:16:71:22 | TupleStructPat | semmle.label | |
| test.rs:71:12:71:26 | LetExpr | test.rs:71:16:71:22 | TupleStructPat | semmle.order | 1 |
| test.rs:71:16:71:22 | TupleStructPat | test.rs:72:13:72:13 | PathExpr | semmle.label | match |
| test.rs:71:16:71:22 | TupleStructPat | test.rs:72:13:72:13 | PathExpr | semmle.order | 1 |
| test.rs:71:16:71:22 | TupleStructPat | test.rs:74:13:74:13 | LiteralExpr | semmle.label | no-match |
| test.rs:71:16:71:22 | TupleStructPat | test.rs:74:13:74:13 | LiteralExpr | semmle.order | 2 |
| test.rs:71:28:73:9 | BlockExpr | test.rs:71:9:75:9 | IfExpr | semmle.label | |
| test.rs:71:28:73:9 | BlockExpr | test.rs:71:9:75:9 | IfExpr | semmle.order | 1 |
| test.rs:72:13:72:13 | PathExpr | test.rs:71:28:73:9 | BlockExpr | semmle.label | |
| test.rs:72:13:72:13 | PathExpr | test.rs:71:28:73:9 | BlockExpr | semmle.order | 1 |
| test.rs:73:16:75:9 | BlockExpr | test.rs:71:9:75:9 | IfExpr | semmle.label | |
| test.rs:73:16:75:9 | BlockExpr | test.rs:71:9:75:9 | IfExpr | semmle.order | 1 |
| test.rs:74:13:74:13 | LiteralExpr | test.rs:73:16:75:9 | BlockExpr | semmle.label | |
| test.rs:74:13:74:13 | LiteralExpr | test.rs:73:16:75:9 | BlockExpr | semmle.order | 1 |
| test.rs:78:5:83:5 | enter test_if_let | test.rs:79:9:81:9 | ExprStmt | semmle.label | |
| test.rs:78:5:83:5 | enter test_if_let | test.rs:79:9:81:9 | ExprStmt | semmle.order | 1 |
| test.rs:78:5:83:5 | exit test_if_let (normal) | test.rs:78:5:83:5 | exit test_if_let | semmle.label | |
| test.rs:78:5:83:5 | exit test_if_let (normal) | test.rs:78:5:83:5 | exit test_if_let | semmle.order | 1 |
| test.rs:78:43:83:5 | BlockExpr | test.rs:78:5:83:5 | exit test_if_let (normal) | semmle.label | |
| test.rs:78:43:83:5 | BlockExpr | test.rs:78:5:83:5 | exit test_if_let (normal) | semmle.order | 1 |
| test.rs:79:9:81:9 | ExprStmt | test.rs:79:12:79:26 | LetExpr | semmle.label | |
| test.rs:79:9:81:9 | ExprStmt | test.rs:79:12:79:26 | LetExpr | semmle.order | 1 |
| test.rs:79:9:81:9 | IfExpr | test.rs:82:9:82:9 | LiteralExpr | semmle.label | |
| test.rs:79:9:81:9 | IfExpr | test.rs:82:9:82:9 | LiteralExpr | semmle.order | 1 |
| test.rs:79:12:79:26 | LetExpr | test.rs:79:16:79:22 | TupleStructPat | semmle.label | |
| test.rs:79:12:79:26 | LetExpr | test.rs:79:16:79:22 | TupleStructPat | semmle.order | 1 |
| test.rs:79:16:79:22 | TupleStructPat | test.rs:79:9:81:9 | IfExpr | semmle.label | no-match |
| test.rs:79:16:79:22 | TupleStructPat | test.rs:79:9:81:9 | IfExpr | semmle.order | 1 |
| test.rs:79:16:79:22 | TupleStructPat | test.rs:80:13:80:13 | PathExpr | semmle.label | match |
| test.rs:79:16:79:22 | TupleStructPat | test.rs:80:13:80:13 | PathExpr | semmle.order | 2 |
| test.rs:79:28:81:9 | BlockExpr | test.rs:79:9:81:9 | IfExpr | semmle.label | |
| test.rs:79:28:81:9 | BlockExpr | test.rs:79:9:81:9 | IfExpr | semmle.order | 1 |
| test.rs:80:13:80:13 | PathExpr | test.rs:79:28:81:9 | BlockExpr | semmle.label | |
| test.rs:80:13:80:13 | PathExpr | test.rs:79:28:81:9 | BlockExpr | semmle.order | 1 |
| test.rs:82:9:82:9 | LiteralExpr | test.rs:78:43:83:5 | BlockExpr | semmle.label | |
| test.rs:82:9:82:9 | LiteralExpr | test.rs:78:43:83:5 | BlockExpr | semmle.order | 1 |
| test.rs:105:5:108:5 | enter test_and_operator | test.rs:106:9:106:28 | LetStmt | semmle.label | |
| test.rs:105:5:108:5 | enter test_and_operator | test.rs:106:9:106:28 | LetStmt | semmle.order | 1 |
| test.rs:105:5:108:5 | exit test_and_operator (normal) | test.rs:105:5:108:5 | exit test_and_operator | semmle.label | |
| test.rs:105:5:108:5 | exit test_and_operator (normal) | test.rs:105:5:108:5 | exit test_and_operator | semmle.order | 1 |
| test.rs:105:61:108:5 | BlockExpr | test.rs:105:5:108:5 | exit test_and_operator (normal) | semmle.label | |
| test.rs:105:61:108:5 | BlockExpr | test.rs:105:5:108:5 | exit test_and_operator (normal) | semmle.order | 1 |
| test.rs:106:9:106:28 | LetStmt | test.rs:106:17:106:27 | BinaryExpr | semmle.label | |
| test.rs:106:9:106:28 | LetStmt | test.rs:106:17:106:27 | BinaryExpr | semmle.order | 1 |
| test.rs:106:13:106:13 | IdentPat | test.rs:107:9:107:9 | PathExpr | semmle.label | match, no-match |
| test.rs:106:13:106:13 | IdentPat | test.rs:107:9:107:9 | PathExpr | semmle.order | 1 |
| test.rs:106:13:106:13 | IdentPat | test.rs:107:9:107:9 | PathExpr | semmle.order | 2 |
| test.rs:106:17:106:17 | PathExpr | test.rs:106:13:106:13 | IdentPat | semmle.label | false |
| test.rs:106:17:106:17 | PathExpr | test.rs:106:13:106:13 | IdentPat | semmle.order | 1 |
| test.rs:106:17:106:17 | PathExpr | test.rs:106:22:106:22 | PathExpr | semmle.label | true |
| test.rs:106:17:106:17 | PathExpr | test.rs:106:22:106:22 | PathExpr | semmle.order | 2 |
| test.rs:106:17:106:22 | BinaryExpr | test.rs:106:17:106:17 | PathExpr | semmle.label | |
| test.rs:106:17:106:22 | BinaryExpr | test.rs:106:17:106:17 | PathExpr | semmle.order | 1 |
| test.rs:106:17:106:27 | BinaryExpr | test.rs:106:17:106:22 | BinaryExpr | semmle.label | |
| test.rs:106:17:106:27 | BinaryExpr | test.rs:106:17:106:22 | BinaryExpr | semmle.order | 1 |
| test.rs:106:22:106:22 | PathExpr | test.rs:106:13:106:13 | IdentPat | semmle.label | false |
| test.rs:106:22:106:22 | PathExpr | test.rs:106:13:106:13 | IdentPat | semmle.order | 1 |
| test.rs:106:22:106:22 | PathExpr | test.rs:106:27:106:27 | PathExpr | semmle.label | true |
| test.rs:106:22:106:22 | PathExpr | test.rs:106:27:106:27 | PathExpr | semmle.order | 2 |
| test.rs:106:27:106:27 | PathExpr | test.rs:106:13:106:13 | IdentPat | semmle.label | |
| test.rs:106:27:106:27 | PathExpr | test.rs:106:13:106:13 | IdentPat | semmle.order | 1 |
| test.rs:107:9:107:9 | PathExpr | test.rs:105:61:108:5 | BlockExpr | semmle.label | |
| test.rs:107:9:107:9 | PathExpr | test.rs:105:61:108:5 | BlockExpr | semmle.order | 1 |
| test.rs:110:5:113:5 | enter test_or_operator | test.rs:111:9:111:28 | LetStmt | semmle.label | |
| test.rs:110:5:113:5 | enter test_or_operator | test.rs:111:9:111:28 | LetStmt | semmle.order | 1 |
| test.rs:110:5:113:5 | exit test_or_operator (normal) | test.rs:110:5:113:5 | exit test_or_operator | semmle.label | |
| test.rs:110:5:113:5 | exit test_or_operator (normal) | test.rs:110:5:113:5 | exit test_or_operator | semmle.order | 1 |
| test.rs:110:60:113:5 | BlockExpr | test.rs:110:5:113:5 | exit test_or_operator (normal) | semmle.label | |
| test.rs:110:60:113:5 | BlockExpr | test.rs:110:5:113:5 | exit test_or_operator (normal) | semmle.order | 1 |
| test.rs:111:9:111:28 | LetStmt | test.rs:111:17:111:27 | BinaryExpr | semmle.label | |
| test.rs:111:9:111:28 | LetStmt | test.rs:111:17:111:27 | BinaryExpr | semmle.order | 1 |
| test.rs:111:13:111:13 | IdentPat | test.rs:112:9:112:9 | PathExpr | semmle.label | match, no-match |
| test.rs:111:13:111:13 | IdentPat | test.rs:112:9:112:9 | PathExpr | semmle.order | 1 |
| test.rs:111:13:111:13 | IdentPat | test.rs:112:9:112:9 | PathExpr | semmle.order | 2 |
| test.rs:111:17:111:17 | PathExpr | test.rs:111:13:111:13 | IdentPat | semmle.label | true |
| test.rs:111:17:111:17 | PathExpr | test.rs:111:13:111:13 | IdentPat | semmle.order | 1 |
| test.rs:111:17:111:17 | PathExpr | test.rs:111:22:111:22 | PathExpr | semmle.label | false |
| test.rs:111:17:111:17 | PathExpr | test.rs:111:22:111:22 | PathExpr | semmle.order | 2 |
| test.rs:111:17:111:22 | BinaryExpr | test.rs:111:17:111:17 | PathExpr | semmle.label | |
| test.rs:111:17:111:22 | BinaryExpr | test.rs:111:17:111:17 | PathExpr | semmle.order | 1 |
| test.rs:111:17:111:27 | BinaryExpr | test.rs:111:17:111:22 | BinaryExpr | semmle.label | |
| test.rs:111:17:111:27 | BinaryExpr | test.rs:111:17:111:22 | BinaryExpr | semmle.order | 1 |
| test.rs:111:22:111:22 | PathExpr | test.rs:111:13:111:13 | IdentPat | semmle.label | true |
| test.rs:111:22:111:22 | PathExpr | test.rs:111:13:111:13 | IdentPat | semmle.order | 1 |
| test.rs:111:22:111:22 | PathExpr | test.rs:111:27:111:27 | PathExpr | semmle.label | false |
| test.rs:111:22:111:22 | PathExpr | test.rs:111:27:111:27 | PathExpr | semmle.order | 2 |
| test.rs:111:27:111:27 | PathExpr | test.rs:111:13:111:13 | IdentPat | semmle.label | |
| test.rs:111:27:111:27 | PathExpr | test.rs:111:13:111:13 | IdentPat | semmle.order | 1 |
| test.rs:112:9:112:9 | PathExpr | test.rs:110:60:113:5 | BlockExpr | semmle.label | |
| test.rs:112:9:112:9 | PathExpr | test.rs:110:60:113:5 | BlockExpr | semmle.order | 1 |
| test.rs:115:5:118:5 | enter test_or_operator_2 | test.rs:116:9:116:36 | LetStmt | semmle.label | |
| test.rs:115:5:118:5 | enter test_or_operator_2 | test.rs:116:9:116:36 | LetStmt | semmle.order | 1 |
| test.rs:115:5:118:5 | exit test_or_operator_2 (normal) | test.rs:115:5:118:5 | exit test_or_operator_2 | semmle.label | |
| test.rs:115:5:118:5 | exit test_or_operator_2 (normal) | test.rs:115:5:118:5 | exit test_or_operator_2 | semmle.order | 1 |
| test.rs:115:61:118:5 | BlockExpr | test.rs:115:5:118:5 | exit test_or_operator_2 (normal) | semmle.label | |
| test.rs:115:61:118:5 | BlockExpr | test.rs:115:5:118:5 | exit test_or_operator_2 (normal) | semmle.order | 1 |
| test.rs:116:9:116:36 | LetStmt | test.rs:116:17:116:35 | BinaryExpr | semmle.label | |
| test.rs:116:9:116:36 | LetStmt | test.rs:116:17:116:35 | BinaryExpr | semmle.order | 1 |
| test.rs:116:13:116:13 | IdentPat | test.rs:117:9:117:9 | PathExpr | semmle.label | match, no-match |
| test.rs:116:13:116:13 | IdentPat | test.rs:117:9:117:9 | PathExpr | semmle.order | 1 |
| test.rs:116:13:116:13 | IdentPat | test.rs:117:9:117:9 | PathExpr | semmle.order | 2 |
| test.rs:116:17:116:17 | PathExpr | test.rs:116:13:116:13 | IdentPat | semmle.label | true |
| test.rs:116:17:116:17 | PathExpr | test.rs:116:13:116:13 | IdentPat | semmle.order | 1 |
| test.rs:116:17:116:30 | BinaryExpr | test.rs:116:17:116:17 | PathExpr | semmle.label | |
| test.rs:116:17:116:30 | BinaryExpr | test.rs:116:17:116:17 | PathExpr | semmle.order | 1 |
| test.rs:116:17:116:35 | BinaryExpr | test.rs:116:17:116:30 | BinaryExpr | semmle.label | |
| test.rs:116:17:116:35 | BinaryExpr | test.rs:116:17:116:30 | BinaryExpr | semmle.order | 1 |
| test.rs:117:9:117:9 | PathExpr | test.rs:115:61:118:5 | BlockExpr | semmle.label | |
| test.rs:117:9:117:9 | PathExpr | test.rs:115:61:118:5 | BlockExpr | semmle.order | 1 |
| test.rs:122:1:128:1 | enter test_match | test.rs:123:11:123:21 | PathExpr | semmle.label | |
| test.rs:122:1:128:1 | enter test_match | test.rs:123:11:123:21 | PathExpr | semmle.order | 1 |
| test.rs:122:1:128:1 | exit test_match (normal) | test.rs:122:1:128:1 | exit test_match | semmle.label | |
| test.rs:122:1:128:1 | exit test_match (normal) | test.rs:122:1:128:1 | exit test_match | semmle.order | 1 |
| test.rs:122:44:128:1 | BlockExpr | test.rs:122:1:128:1 | exit test_match (normal) | semmle.label | |
| test.rs:122:44:128:1 | BlockExpr | test.rs:122:1:128:1 | exit test_match (normal) | semmle.order | 1 |
| test.rs:123:5:127:5 | MatchExpr | test.rs:122:44:128:1 | BlockExpr | semmle.label | |
| test.rs:123:5:127:5 | MatchExpr | test.rs:122:44:128:1 | BlockExpr | semmle.order | 1 |
| test.rs:123:11:123:21 | PathExpr | test.rs:124:9:124:23 | TupleStructPat | semmle.label | |
| test.rs:123:11:123:21 | PathExpr | test.rs:124:9:124:23 | TupleStructPat | semmle.order | 1 |
| test.rs:124:9:124:23 | TupleStructPat | test.rs:123:5:127:5 | MatchExpr | semmle.label | no-match |
| test.rs:124:9:124:23 | TupleStructPat | test.rs:123:5:127:5 | MatchExpr | semmle.order | 1 |
| test.rs:124:9:124:23 | TupleStructPat | test.rs:124:28:124:28 | PathExpr | semmle.label | match |
| test.rs:124:9:124:23 | TupleStructPat | test.rs:124:28:124:28 | PathExpr | semmle.order | 2 |
| test.rs:124:9:124:23 | TupleStructPat | test.rs:125:9:125:23 | TupleStructPat | semmle.label | no-match |
| test.rs:124:9:124:23 | TupleStructPat | test.rs:125:9:125:23 | TupleStructPat | semmle.order | 3 |
| test.rs:124:28:124:28 | PathExpr | test.rs:124:32:124:33 | LiteralExpr | semmle.label | |
| test.rs:124:28:124:28 | PathExpr | test.rs:124:32:124:33 | LiteralExpr | semmle.order | 1 |
| test.rs:124:32:124:33 | LiteralExpr | test.rs:124:28:124:33 | BinaryExpr | semmle.label | |
| test.rs:124:32:124:33 | LiteralExpr | test.rs:124:28:124:33 | BinaryExpr | semmle.order | 1 |
| test.rs:125:9:125:23 | TupleStructPat | test.rs:123:5:127:5 | MatchExpr | semmle.label | no-match |
| test.rs:125:9:125:23 | TupleStructPat | test.rs:123:5:127:5 | MatchExpr | semmle.order | 1 |
| test.rs:125:9:125:23 | TupleStructPat | test.rs:125:28:125:28 | PathExpr | semmle.label | match |
| test.rs:125:9:125:23 | TupleStructPat | test.rs:125:28:125:28 | PathExpr | semmle.order | 2 |
| test.rs:125:9:125:23 | TupleStructPat | test.rs:126:9:126:20 | PathPat | semmle.label | no-match |
| test.rs:125:9:125:23 | TupleStructPat | test.rs:126:9:126:20 | PathPat | semmle.order | 3 |
| test.rs:125:28:125:28 | PathExpr | test.rs:123:5:127:5 | MatchExpr | semmle.label | |
| test.rs:125:28:125:28 | PathExpr | test.rs:123:5:127:5 | MatchExpr | semmle.order | 1 |
| test.rs:126:9:126:20 | PathPat | test.rs:123:5:127:5 | MatchExpr | semmle.label | no-match |
| test.rs:126:9:126:20 | PathPat | test.rs:123:5:127:5 | MatchExpr | semmle.order | 1 |
| test.rs:126:9:126:20 | PathPat | test.rs:126:25:126:25 | LiteralExpr | semmle.label | match |
| test.rs:126:9:126:20 | PathPat | test.rs:126:25:126:25 | LiteralExpr | semmle.order | 2 |
| test.rs:126:25:126:25 | LiteralExpr | test.rs:123:5:127:5 | MatchExpr | semmle.label | |
| test.rs:126:25:126:25 | LiteralExpr | test.rs:123:5:127:5 | MatchExpr | semmle.order | 1 |
| test.rs:131:5:136:5 | enter test_infinite_loop | test.rs:132:9:134:9 | ExprStmt | semmle.label | |
| test.rs:131:5:136:5 | enter test_infinite_loop | test.rs:132:9:134:9 | ExprStmt | semmle.order | 1 |
| test.rs:132:9:134:9 | ExprStmt | test.rs:133:13:133:13 | LiteralExpr | semmle.label | |
| test.rs:132:9:134:9 | ExprStmt | test.rs:133:13:133:13 | LiteralExpr | semmle.order | 1 |
| test.rs:132:14:134:9 | BlockExpr | test.rs:133:13:133:13 | LiteralExpr | semmle.label | |
| test.rs:132:14:134:9 | BlockExpr | test.rs:133:13:133:13 | LiteralExpr | semmle.order | 1 |
| test.rs:133:13:133:13 | LiteralExpr | test.rs:132:14:134:9 | BlockExpr | semmle.label | |
| test.rs:133:13:133:13 | LiteralExpr | test.rs:132:14:134:9 | BlockExpr | semmle.order | 1 |
| test.rs:138:5:143:5 | enter test_let_match | test.rs:139:9:141:10 | LetStmt | semmle.label | |
| test.rs:138:5:143:5 | enter test_let_match | test.rs:139:9:141:10 | LetStmt | semmle.order | 1 |
| test.rs:138:5:143:5 | exit test_let_match (normal) | test.rs:138:5:143:5 | exit test_let_match | semmle.label | |
| test.rs:138:5:143:5 | exit test_let_match (normal) | test.rs:138:5:143:5 | exit test_let_match | semmle.order | 1 |
| test.rs:138:39:143:5 | BlockExpr | test.rs:138:5:143:5 | exit test_let_match (normal) | semmle.label | |
| test.rs:138:39:143:5 | BlockExpr | test.rs:138:5:143:5 | exit test_let_match (normal) | semmle.order | 1 |
| test.rs:139:9:141:10 | LetStmt | test.rs:139:23:139:23 | PathExpr | semmle.label | |
| test.rs:139:9:141:10 | LetStmt | test.rs:139:23:139:23 | PathExpr | semmle.order | 1 |
| test.rs:139:13:139:19 | TupleStructPat | test.rs:140:13:140:27 | LiteralExpr | semmle.label | no-match |
| test.rs:139:13:139:19 | TupleStructPat | test.rs:140:13:140:27 | LiteralExpr | semmle.order | 1 |
| test.rs:139:13:139:19 | TupleStructPat | test.rs:142:9:142:9 | PathExpr | semmle.label | match |
| test.rs:139:13:139:19 | TupleStructPat | test.rs:142:9:142:9 | PathExpr | semmle.order | 2 |
| test.rs:139:23:139:23 | PathExpr | test.rs:139:13:139:19 | TupleStructPat | semmle.label | |
| test.rs:139:23:139:23 | PathExpr | test.rs:139:13:139:19 | TupleStructPat | semmle.order | 1 |
| test.rs:140:13:140:27 | LiteralExpr | test.rs:139:30:141:9 | BlockExpr | semmle.label | |
| test.rs:140:13:140:27 | LiteralExpr | test.rs:139:30:141:9 | BlockExpr | semmle.order | 1 |
| test.rs:142:9:142:9 | PathExpr | test.rs:138:39:143:5 | BlockExpr | semmle.label | |
| test.rs:142:9:142:9 | PathExpr | test.rs:138:39:143:5 | BlockExpr | semmle.order | 1 |
| test.rs:1:1:4:1 | enter test_call | test.rs:2:5:2:41 | ExprStmt | |
| test.rs:1:1:4:1 | exit test_call (normal) | test.rs:1:1:4:1 | exit test_call | |
| test.rs:1:24:4:1 | BlockExpr | test.rs:1:1:4:1 | exit test_call (normal) | |
| test.rs:2:5:2:21 | PathExpr | test.rs:2:23:2:26 | LiteralExpr | |
| test.rs:2:5:2:40 | CallExpr | test.rs:3:5:3:24 | ExprStmt | |
| test.rs:2:5:2:41 | ExprStmt | test.rs:2:5:2:21 | PathExpr | |
| test.rs:2:23:2:26 | LiteralExpr | test.rs:2:29:2:33 | LiteralExpr | |
| test.rs:2:29:2:33 | LiteralExpr | test.rs:2:36:2:39 | LiteralExpr | |
| test.rs:2:36:2:39 | LiteralExpr | test.rs:2:5:2:40 | CallExpr | |
| test.rs:3:5:3:19 | PathExpr | test.rs:3:21:3:22 | LiteralExpr | |
| test.rs:3:5:3:23 | CallExpr | test.rs:1:24:4:1 | BlockExpr | |
| test.rs:3:5:3:24 | ExprStmt | test.rs:3:5:3:19 | PathExpr | |
| test.rs:3:21:3:22 | LiteralExpr | test.rs:3:5:3:23 | CallExpr | |
| test.rs:8:5:24:5 | enter test_break_and_continue | test.rs:9:9:9:22 | LetStmt | |
| test.rs:8:5:24:5 | exit test_break_and_continue (normal) | test.rs:8:5:24:5 | exit test_break_and_continue | |
| test.rs:9:9:9:22 | LetStmt | test.rs:9:21:9:21 | PathExpr | |
| test.rs:9:13:9:17 | IdentPat | test.rs:10:9:22:9 | ExprStmt | match, no-match |
| test.rs:9:21:9:21 | PathExpr | test.rs:9:13:9:17 | IdentPat | |
| test.rs:10:9:22:9 | ExprStmt | test.rs:11:13:11:24 | ExprStmt | |
| test.rs:10:9:22:9 | LoopExpr | test.rs:23:9:23:20 | ExprStmt | |
| test.rs:10:14:22:9 | BlockExpr | test.rs:11:13:11:24 | ExprStmt | |
| test.rs:11:13:11:13 | PathExpr | test.rs:11:17:11:20 | PathExpr | |
| test.rs:11:13:11:23 | BinaryExpr | test.rs:12:13:14:13 | ExprStmt | |
| test.rs:11:13:11:24 | ExprStmt | test.rs:11:13:11:13 | PathExpr | |
| test.rs:11:17:11:20 | PathExpr | test.rs:11:22:11:22 | PathExpr | |
| test.rs:11:17:11:23 | CallExpr | test.rs:11:13:11:23 | BinaryExpr | |
| test.rs:11:22:11:22 | PathExpr | test.rs:11:17:11:23 | CallExpr | |
| test.rs:12:13:14:13 | ExprStmt | test.rs:12:16:12:16 | PathExpr | |
| test.rs:12:13:14:13 | IfExpr | test.rs:15:13:17:13 | ExprStmt | |
| test.rs:12:16:12:16 | PathExpr | test.rs:12:20:12:24 | LiteralExpr | |
| test.rs:12:16:12:24 | BinaryExpr | test.rs:12:13:14:13 | IfExpr | false |
| test.rs:12:16:12:24 | BinaryExpr | test.rs:13:17:13:29 | ExprStmt | true |
| test.rs:12:20:12:24 | LiteralExpr | test.rs:12:16:12:24 | BinaryExpr | |
| test.rs:13:17:13:28 | ReturnExpr | test.rs:8:5:24:5 | exit test_break_and_continue (normal) | return |
| test.rs:13:17:13:29 | ExprStmt | test.rs:13:24:13:28 | LiteralExpr | |
| test.rs:13:24:13:28 | LiteralExpr | test.rs:13:17:13:28 | ReturnExpr | |
| test.rs:15:13:17:13 | ExprStmt | test.rs:15:16:15:16 | PathExpr | |
| test.rs:15:13:17:13 | IfExpr | test.rs:18:13:20:13 | ExprStmt | |
| test.rs:15:16:15:16 | PathExpr | test.rs:15:21:15:21 | LiteralExpr | |
| test.rs:15:16:15:21 | BinaryExpr | test.rs:15:13:17:13 | IfExpr | false |
| test.rs:15:16:15:21 | BinaryExpr | test.rs:16:17:16:22 | ExprStmt | true |
| test.rs:15:21:15:21 | LiteralExpr | test.rs:15:16:15:21 | BinaryExpr | |
| test.rs:16:17:16:21 | BreakExpr | test.rs:10:9:22:9 | LoopExpr | break |
| test.rs:16:17:16:22 | ExprStmt | test.rs:16:17:16:21 | BreakExpr | |
| test.rs:18:13:20:13 | ExprStmt | test.rs:18:16:18:16 | PathExpr | |
| test.rs:18:13:20:13 | IfExpr | test.rs:21:13:21:13 | PathExpr | |
| test.rs:18:16:18:16 | PathExpr | test.rs:18:20:18:20 | LiteralExpr | |
| test.rs:18:16:18:20 | BinaryExpr | test.rs:18:25:18:25 | LiteralExpr | |
| test.rs:18:16:18:25 | BinaryExpr | test.rs:18:13:20:13 | IfExpr | false |
| test.rs:18:16:18:25 | BinaryExpr | test.rs:19:17:19:25 | ExprStmt | true |
| test.rs:18:20:18:20 | LiteralExpr | test.rs:18:16:18:20 | BinaryExpr | |
| test.rs:18:25:18:25 | LiteralExpr | test.rs:18:16:18:25 | BinaryExpr | |
| test.rs:19:17:19:24 | ContinueExpr | test.rs:11:13:11:24 | ExprStmt | continue |
| test.rs:19:17:19:25 | ExprStmt | test.rs:19:17:19:24 | ContinueExpr | |
| test.rs:21:13:21:13 | PathExpr | test.rs:21:17:21:17 | PathExpr | |
| test.rs:21:13:21:21 | BinaryExpr | test.rs:10:14:22:9 | BlockExpr | |
| test.rs:21:17:21:17 | PathExpr | test.rs:21:21:21:21 | LiteralExpr | |
| test.rs:21:17:21:21 | BinaryExpr | test.rs:21:13:21:21 | BinaryExpr | |
| test.rs:21:21:21:21 | LiteralExpr | test.rs:21:17:21:21 | BinaryExpr | |
| test.rs:23:9:23:19 | ReturnExpr | test.rs:8:5:24:5 | exit test_break_and_continue (normal) | return |
| test.rs:23:9:23:20 | ExprStmt | test.rs:23:16:23:19 | LiteralExpr | |
| test.rs:23:16:23:19 | LiteralExpr | test.rs:23:9:23:19 | ReturnExpr | |
| test.rs:26:5:38:5 | enter test_break_with_labels | test.rs:27:9:36:9 | ExprStmt | |
| test.rs:26:5:38:5 | exit test_break_with_labels (normal) | test.rs:26:5:38:5 | exit test_break_with_labels | |
| test.rs:26:41:38:5 | BlockExpr | test.rs:26:5:38:5 | exit test_break_with_labels (normal) | |
| test.rs:27:9:36:9 | ExprStmt | test.rs:29:17:33:17 | ExprStmt | |
| test.rs:27:9:36:9 | LoopExpr | test.rs:37:9:37:12 | LiteralExpr | |
| test.rs:27:22:36:9 | BlockExpr | test.rs:29:17:33:17 | ExprStmt | |
| test.rs:28:13:35:13 | LoopExpr | test.rs:27:22:36:9 | BlockExpr | |
| test.rs:29:17:33:17 | ExprStmt | test.rs:29:20:29:24 | LiteralExpr | |
| test.rs:29:17:33:17 | IfExpr | test.rs:34:17:34:29 | ExprStmt | |
| test.rs:29:20:29:24 | LiteralExpr | test.rs:30:21:30:26 | ExprStmt | true |
| test.rs:29:20:29:24 | LiteralExpr | test.rs:31:27:31:30 | LiteralExpr | false |
| test.rs:30:21:30:25 | BreakExpr | test.rs:28:13:35:13 | LoopExpr | break |
| test.rs:30:21:30:26 | ExprStmt | test.rs:30:21:30:25 | BreakExpr | |
| test.rs:31:24:33:17 | IfExpr | test.rs:29:17:33:17 | IfExpr | |
| test.rs:31:27:31:30 | LiteralExpr | test.rs:31:24:33:17 | IfExpr | false |
| test.rs:31:27:31:30 | LiteralExpr | test.rs:32:21:32:33 | ExprStmt | true |
| test.rs:32:21:32:32 | BreakExpr | test.rs:27:9:36:9 | LoopExpr | break('outer) |
| test.rs:32:21:32:33 | ExprStmt | test.rs:32:21:32:32 | BreakExpr | |
| test.rs:34:17:34:28 | BreakExpr | test.rs:28:13:35:13 | LoopExpr | break('inner) |
| test.rs:34:17:34:29 | ExprStmt | test.rs:34:17:34:28 | BreakExpr | |
| test.rs:37:9:37:12 | LiteralExpr | test.rs:26:41:38:5 | BlockExpr | |
| test.rs:40:5:52:5 | enter test_continue_with_labels | test.rs:42:13:42:14 | ExprStmt | |
| test.rs:42:13:42:13 | LiteralExpr | test.rs:44:17:48:17 | ExprStmt | |
| test.rs:42:13:42:14 | ExprStmt | test.rs:42:13:42:13 | LiteralExpr | |
| test.rs:44:17:48:17 | ExprStmt | test.rs:44:20:44:24 | LiteralExpr | |
| test.rs:44:17:48:17 | IfExpr | test.rs:49:17:49:32 | ExprStmt | |
| test.rs:44:20:44:24 | LiteralExpr | test.rs:45:21:45:29 | ExprStmt | true |
| test.rs:44:20:44:24 | LiteralExpr | test.rs:46:27:46:30 | LiteralExpr | false |
| test.rs:45:21:45:28 | ContinueExpr | test.rs:44:17:48:17 | ExprStmt | continue |
| test.rs:45:21:45:29 | ExprStmt | test.rs:45:21:45:28 | ContinueExpr | |
| test.rs:46:24:48:17 | IfExpr | test.rs:44:17:48:17 | IfExpr | |
| test.rs:46:27:46:30 | LiteralExpr | test.rs:46:24:48:17 | IfExpr | false |
| test.rs:46:27:46:30 | LiteralExpr | test.rs:47:21:47:36 | ExprStmt | true |
| test.rs:47:21:47:35 | ContinueExpr | test.rs:42:13:42:14 | ExprStmt | continue('outer) |
| test.rs:47:21:47:36 | ExprStmt | test.rs:47:21:47:35 | ContinueExpr | |
| test.rs:49:17:49:31 | ContinueExpr | test.rs:44:17:48:17 | ExprStmt | continue('inner) |
| test.rs:49:17:49:32 | ExprStmt | test.rs:49:17:49:31 | ContinueExpr | |
| test.rs:55:1:58:1 | enter test_nested_function | test.rs:56:5:56:28 | LetStmt | |
| test.rs:55:1:58:1 | exit test_nested_function (normal) | test.rs:55:1:58:1 | exit test_nested_function | |
| test.rs:55:40:58:1 | BlockExpr | test.rs:55:1:58:1 | exit test_nested_function (normal) | |
| test.rs:56:5:56:28 | LetStmt | test.rs:56:19:56:27 | ClosureExpr | |
| test.rs:56:9:56:15 | IdentPat | test.rs:57:5:57:11 | PathExpr | match, no-match |
| test.rs:56:19:56:27 | ClosureExpr | test.rs:56:9:56:15 | IdentPat | |
| test.rs:56:19:56:27 | enter ClosureExpr | test.rs:56:23:56:23 | PathExpr | |
| test.rs:56:19:56:27 | exit ClosureExpr (normal) | test.rs:56:19:56:27 | exit ClosureExpr | |
| test.rs:56:23:56:23 | PathExpr | test.rs:56:27:56:27 | LiteralExpr | |
| test.rs:56:23:56:27 | BinaryExpr | test.rs:56:19:56:27 | exit ClosureExpr (normal) | |
| test.rs:56:27:56:27 | LiteralExpr | test.rs:56:23:56:27 | BinaryExpr | |
| test.rs:57:5:57:11 | PathExpr | test.rs:57:13:57:19 | PathExpr | |
| test.rs:57:5:57:23 | CallExpr | test.rs:55:40:58:1 | BlockExpr | |
| test.rs:57:13:57:19 | PathExpr | test.rs:57:21:57:21 | PathExpr | |
| test.rs:57:13:57:22 | CallExpr | test.rs:57:5:57:23 | CallExpr | |
| test.rs:57:21:57:21 | PathExpr | test.rs:57:13:57:22 | CallExpr | |
| test.rs:62:5:68:5 | enter test_if_else | test.rs:63:12:63:12 | PathExpr | |
| test.rs:62:5:68:5 | exit test_if_else (normal) | test.rs:62:5:68:5 | exit test_if_else | |
| test.rs:62:36:68:5 | BlockExpr | test.rs:62:5:68:5 | exit test_if_else (normal) | |
| test.rs:63:9:67:9 | IfExpr | test.rs:62:36:68:5 | BlockExpr | |
| test.rs:63:12:63:12 | PathExpr | test.rs:63:17:63:17 | LiteralExpr | |
| test.rs:63:12:63:17 | BinaryExpr | test.rs:64:13:64:13 | LiteralExpr | true |
| test.rs:63:12:63:17 | BinaryExpr | test.rs:66:13:66:13 | PathExpr | false |
| test.rs:63:17:63:17 | LiteralExpr | test.rs:63:12:63:17 | BinaryExpr | |
| test.rs:63:19:65:9 | BlockExpr | test.rs:63:9:67:9 | IfExpr | |
| test.rs:64:13:64:13 | LiteralExpr | test.rs:63:19:65:9 | BlockExpr | |
| test.rs:65:16:67:9 | BlockExpr | test.rs:63:9:67:9 | IfExpr | |
| test.rs:66:13:66:13 | PathExpr | test.rs:66:17:66:17 | LiteralExpr | |
| test.rs:66:13:66:17 | BinaryExpr | test.rs:65:16:67:9 | BlockExpr | |
| test.rs:66:17:66:17 | LiteralExpr | test.rs:66:13:66:17 | BinaryExpr | |
| test.rs:70:5:76:5 | enter test_if_let_else | test.rs:71:12:71:26 | LetExpr | |
| test.rs:70:5:76:5 | exit test_if_let_else (normal) | test.rs:70:5:76:5 | exit test_if_let_else | |
| test.rs:70:48:76:5 | BlockExpr | test.rs:70:5:76:5 | exit test_if_let_else (normal) | |
| test.rs:71:9:75:9 | IfExpr | test.rs:70:48:76:5 | BlockExpr | |
| test.rs:71:12:71:26 | LetExpr | test.rs:71:16:71:22 | TupleStructPat | |
| test.rs:71:16:71:22 | TupleStructPat | test.rs:72:13:72:13 | PathExpr | match |
| test.rs:71:16:71:22 | TupleStructPat | test.rs:74:13:74:13 | LiteralExpr | no-match |
| test.rs:71:28:73:9 | BlockExpr | test.rs:71:9:75:9 | IfExpr | |
| test.rs:72:13:72:13 | PathExpr | test.rs:71:28:73:9 | BlockExpr | |
| test.rs:73:16:75:9 | BlockExpr | test.rs:71:9:75:9 | IfExpr | |
| test.rs:74:13:74:13 | LiteralExpr | test.rs:73:16:75:9 | BlockExpr | |
| test.rs:78:5:83:5 | enter test_if_let | test.rs:79:9:81:9 | ExprStmt | |
| test.rs:78:5:83:5 | exit test_if_let (normal) | test.rs:78:5:83:5 | exit test_if_let | |
| test.rs:78:43:83:5 | BlockExpr | test.rs:78:5:83:5 | exit test_if_let (normal) | |
| test.rs:79:9:81:9 | ExprStmt | test.rs:79:12:79:26 | LetExpr | |
| test.rs:79:9:81:9 | IfExpr | test.rs:82:9:82:9 | LiteralExpr | |
| test.rs:79:12:79:26 | LetExpr | test.rs:79:16:79:22 | TupleStructPat | |
| test.rs:79:16:79:22 | TupleStructPat | test.rs:79:9:81:9 | IfExpr | no-match |
| test.rs:79:16:79:22 | TupleStructPat | test.rs:80:13:80:13 | PathExpr | match |
| test.rs:79:28:81:9 | BlockExpr | test.rs:79:9:81:9 | IfExpr | |
| test.rs:80:13:80:13 | PathExpr | test.rs:79:28:81:9 | BlockExpr | |
| test.rs:82:9:82:9 | LiteralExpr | test.rs:78:43:83:5 | BlockExpr | |
| test.rs:105:5:108:5 | enter test_and_operator | test.rs:106:9:106:28 | LetStmt | |
| test.rs:105:5:108:5 | exit test_and_operator (normal) | test.rs:105:5:108:5 | exit test_and_operator | |
| test.rs:105:61:108:5 | BlockExpr | test.rs:105:5:108:5 | exit test_and_operator (normal) | |
| test.rs:106:9:106:28 | LetStmt | test.rs:106:17:106:27 | BinaryExpr | |
| test.rs:106:13:106:13 | IdentPat | test.rs:107:9:107:9 | PathExpr | match, no-match |
| test.rs:106:17:106:17 | PathExpr | test.rs:106:13:106:13 | IdentPat | false |
| test.rs:106:17:106:17 | PathExpr | test.rs:106:22:106:22 | PathExpr | true |
| test.rs:106:17:106:22 | BinaryExpr | test.rs:106:17:106:17 | PathExpr | |
| test.rs:106:17:106:27 | BinaryExpr | test.rs:106:17:106:22 | BinaryExpr | |
| test.rs:106:22:106:22 | PathExpr | test.rs:106:13:106:13 | IdentPat | false |
| test.rs:106:22:106:22 | PathExpr | test.rs:106:27:106:27 | PathExpr | true |
| test.rs:106:27:106:27 | PathExpr | test.rs:106:13:106:13 | IdentPat | |
| test.rs:107:9:107:9 | PathExpr | test.rs:105:61:108:5 | BlockExpr | |
| test.rs:110:5:113:5 | enter test_or_operator | test.rs:111:9:111:28 | LetStmt | |
| test.rs:110:5:113:5 | exit test_or_operator (normal) | test.rs:110:5:113:5 | exit test_or_operator | |
| test.rs:110:60:113:5 | BlockExpr | test.rs:110:5:113:5 | exit test_or_operator (normal) | |
| test.rs:111:9:111:28 | LetStmt | test.rs:111:17:111:27 | BinaryExpr | |
| test.rs:111:13:111:13 | IdentPat | test.rs:112:9:112:9 | PathExpr | match, no-match |
| test.rs:111:17:111:17 | PathExpr | test.rs:111:13:111:13 | IdentPat | true |
| test.rs:111:17:111:17 | PathExpr | test.rs:111:22:111:22 | PathExpr | false |
| test.rs:111:17:111:22 | BinaryExpr | test.rs:111:17:111:17 | PathExpr | |
| test.rs:111:17:111:27 | BinaryExpr | test.rs:111:17:111:22 | BinaryExpr | |
| test.rs:111:22:111:22 | PathExpr | test.rs:111:13:111:13 | IdentPat | true |
| test.rs:111:22:111:22 | PathExpr | test.rs:111:27:111:27 | PathExpr | false |
| test.rs:111:27:111:27 | PathExpr | test.rs:111:13:111:13 | IdentPat | |
| test.rs:112:9:112:9 | PathExpr | test.rs:110:60:113:5 | BlockExpr | |
| test.rs:115:5:118:5 | enter test_or_operator_2 | test.rs:116:9:116:36 | LetStmt | |
| test.rs:115:5:118:5 | exit test_or_operator_2 (normal) | test.rs:115:5:118:5 | exit test_or_operator_2 | |
| test.rs:115:61:118:5 | BlockExpr | test.rs:115:5:118:5 | exit test_or_operator_2 (normal) | |
| test.rs:116:9:116:36 | LetStmt | test.rs:116:17:116:35 | BinaryExpr | |
| test.rs:116:13:116:13 | IdentPat | test.rs:117:9:117:9 | PathExpr | match, no-match |
| test.rs:116:17:116:17 | PathExpr | test.rs:116:13:116:13 | IdentPat | true |
| test.rs:116:17:116:30 | BinaryExpr | test.rs:116:17:116:17 | PathExpr | |
| test.rs:116:17:116:35 | BinaryExpr | test.rs:116:17:116:30 | BinaryExpr | |
| test.rs:117:9:117:9 | PathExpr | test.rs:115:61:118:5 | BlockExpr | |
| test.rs:122:1:128:1 | enter test_match | test.rs:123:11:123:21 | PathExpr | |
| test.rs:122:1:128:1 | exit test_match (normal) | test.rs:122:1:128:1 | exit test_match | |
| test.rs:122:44:128:1 | BlockExpr | test.rs:122:1:128:1 | exit test_match (normal) | |
| test.rs:123:5:127:5 | MatchExpr | test.rs:122:44:128:1 | BlockExpr | |
| test.rs:123:11:123:21 | PathExpr | test.rs:124:9:124:23 | TupleStructPat | |
| test.rs:124:9:124:23 | TupleStructPat | test.rs:123:5:127:5 | MatchExpr | no-match |
| test.rs:124:9:124:23 | TupleStructPat | test.rs:124:28:124:28 | PathExpr | match |
| test.rs:124:9:124:23 | TupleStructPat | test.rs:125:9:125:23 | TupleStructPat | no-match |
| test.rs:124:28:124:28 | PathExpr | test.rs:124:32:124:33 | LiteralExpr | |
| test.rs:124:32:124:33 | LiteralExpr | test.rs:124:28:124:33 | BinaryExpr | |
| test.rs:125:9:125:23 | TupleStructPat | test.rs:123:5:127:5 | MatchExpr | no-match |
| test.rs:125:9:125:23 | TupleStructPat | test.rs:125:28:125:28 | PathExpr | match |
| test.rs:125:9:125:23 | TupleStructPat | test.rs:126:9:126:20 | PathPat | no-match |
| test.rs:125:28:125:28 | PathExpr | test.rs:123:5:127:5 | MatchExpr | |
| test.rs:126:9:126:20 | PathPat | test.rs:123:5:127:5 | MatchExpr | no-match |
| test.rs:126:9:126:20 | PathPat | test.rs:126:25:126:25 | LiteralExpr | match |
| test.rs:126:25:126:25 | LiteralExpr | test.rs:123:5:127:5 | MatchExpr | |
| test.rs:131:5:136:5 | enter test_infinite_loop | test.rs:132:9:134:9 | ExprStmt | |
| test.rs:132:9:134:9 | ExprStmt | test.rs:133:13:133:13 | LiteralExpr | |
| test.rs:132:14:134:9 | BlockExpr | test.rs:133:13:133:13 | LiteralExpr | |
| test.rs:133:13:133:13 | LiteralExpr | test.rs:132:14:134:9 | BlockExpr | |
| test.rs:138:5:143:5 | enter test_let_match | test.rs:139:9:141:10 | LetStmt | |
| test.rs:138:5:143:5 | exit test_let_match (normal) | test.rs:138:5:143:5 | exit test_let_match | |
| test.rs:138:39:143:5 | BlockExpr | test.rs:138:5:143:5 | exit test_let_match (normal) | |
| test.rs:139:9:141:10 | LetStmt | test.rs:139:23:139:23 | PathExpr | |
| test.rs:139:13:139:19 | TupleStructPat | test.rs:140:13:140:27 | LiteralExpr | no-match |
| test.rs:139:13:139:19 | TupleStructPat | test.rs:142:9:142:9 | PathExpr | match |
| test.rs:139:23:139:23 | PathExpr | test.rs:139:13:139:19 | TupleStructPat | |
| test.rs:140:13:140:27 | LiteralExpr | test.rs:139:30:141:9 | BlockExpr | |
| test.rs:142:9:142:9 | PathExpr | test.rs:138:39:143:5 | BlockExpr | |

Просмотреть файл

@ -8,8 +8,6 @@ import TestUtils
class MyRelevantNode extends CfgNode {
MyRelevantNode() { toBeTested(this.getScope()) }
string getOrderDisambiguation() { result = "" }
}
import codeql.rust.controlflow.internal.ControlFlowGraphImpl::TestOutput<MyRelevantNode>

Просмотреть файл

@ -1134,66 +1134,38 @@ module Make<LocationSig Location, InputSig<Location> Input> {
final class AstCfgNode = AstCfgNodeImpl;
/** A node to be included in the output of `TestOutput`. */
signature class RelevantNodeSig extends Node {
/**
* Gets a string used to resolve ties in node and edge ordering.
*/
string getOrderDisambiguation();
}
signature class RelevantNodeSig extends Node;
/**
* Import this module into a `.ql` file of `@kind graph` to render a CFG. The
* Import this module into a `.ql` file to output a CFG. The
* graph is restricted to nodes from `RelevantNode`.
*/
module TestOutput<RelevantNodeSig RelevantNode> {
/** Holds if `n` is a relevant node in the CFG. */
query predicate nodes(RelevantNode n, string attr, string val) {
attr = "semmle.order" and
val =
any(int i |
n =
rank[i](RelevantNode p, string filePath, int startLine, int startColumn, int endLine,
int endColumn |
p.getLocation().hasLocationInfo(filePath, startLine, startColumn, endLine, endColumn)
|
p
order by
filePath, startLine, startColumn, endLine, endColumn, p.toString(),
p.getOrderDisambiguation()
)
).toString()
}
/** Holds if `pred -> succ` is an edge in the CFG. */
query predicate edges(RelevantNode pred, RelevantNode succ, string attr, string val) {
attr = "semmle.label" and
val =
query predicate edges(RelevantNode pred, RelevantNode succ, string label) {
label =
strictconcat(SuccessorType t, string s |
succ = getASuccessor(pred, t) and
if successorTypeIsSimple(t) then s = "" else s = t.toString()
|
s, ", " order by s
)
or
attr = "semmle.order" and
val =
any(int i |
succ =
rank[i](RelevantNode s, SuccessorType t, string filePath, int startLine,
int startColumn, int endLine, int endColumn |
s = getASuccessor(pred, t) and
s.getLocation().hasLocationInfo(filePath, startLine, startColumn, endLine, endColumn)
|
s
order by
filePath, startLine, startColumn, endLine, endColumn, t.toString(), s.toString(),
s.getOrderDisambiguation()
)
).toString()
}
module Mermaid {
private string nodeId(RelevantNode n) { nodes(n, "semmle.order", result) }
private string nodeId(RelevantNode n) {
result =
any(int i |
n =
rank[i](RelevantNode p, string filePath, int startLine, int startColumn, int endLine,
int endColumn |
p.getLocation()
.hasLocationInfo(filePath, startLine, startColumn, endLine, endColumn)
|
p order by filePath, startLine, startColumn, endLine, endColumn, p.toString()
)
).toString()
}
private string nodes() {
result =
@ -1205,10 +1177,10 @@ module Make<LocationSig Location, InputSig<Location> Input> {
)
}
private string edge(RelevantNode pred, RelevantNode succ, string ord) {
edges(pred, succ, "semmle.order", ord) and
private string edge(RelevantNode pred, RelevantNode succ) {
edges(pred, succ, _) and
exists(string label |
edges(pred, succ, "semmle.label", label) and
edges(pred, succ, label) and
if label = ""
then result = nodeId(pred) + " --> " + nodeId(succ)
else result = nodeId(pred) + " -- " + label + " --> " + nodeId(succ)
@ -1217,10 +1189,14 @@ module Make<LocationSig Location, InputSig<Location> Input> {
private string edges() {
result =
concat(RelevantNode pred, RelevantNode succ, string edge, string ord |
edge = edge(pred, succ, ord)
concat(RelevantNode pred, RelevantNode succ, string edge, string filePath, int startLine,
int startColumn, int endLine, int endColumn |
edge = edge(pred, succ) and
pred.getLocation().hasLocationInfo(filePath, startLine, startColumn, endLine, endColumn)
|
edge, "\n" order by ord
edge, "\n"
order by
filePath, startLine, startColumn, endLine, endColumn, pred.toString()
)
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,20 +1,8 @@
/**
* @kind graph
*/
import swift
import codeql.swift.controlflow.ControlFlowGraph
class MyRelevantNode extends ControlFlowNode {
MyRelevantNode() { this.getScope().getLocation().getFile().getName().matches("%swift/ql/test%") }
private AstNode asAstNode() { result = this.getAstNode().asAstNode() }
string getOrderDisambiguation() {
result = concat([this.asAstNode().getAPrimaryQlClass(), this.asAstNode().toString()], ",")
or
not exists(this.asAstNode()) and result = ""
}
}
import codeql.swift.controlflow.internal.ControlFlowGraphImpl::TestOutput<MyRelevantNode>