mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
Merge pull request #18163 from paldepind/rust-df-try-expr
Rust: Add flow through `?` operator
This commit is contained in:
@@ -884,6 +884,13 @@ module RustDataFlow implements InputSig<Location> {
|
||||
node1.asExpr() = access.getExpr() and
|
||||
node2.asExpr() = access
|
||||
)
|
||||
or
|
||||
exists(TryExprCfgNode try |
|
||||
node1.asExpr() = try.getExpr() and
|
||||
node2.asExpr() = try and
|
||||
c.(VariantPositionContent).getVariantCanonicalPath(0).getExtendedCanonicalPath() =
|
||||
["crate::option::Option::Some", "crate::result::Result::Ok"]
|
||||
)
|
||||
)
|
||||
or
|
||||
FlowSummaryImpl::Private::Steps::summaryReadStep(node1.(Node::FlowSummaryNode).getSummaryNode(),
|
||||
@@ -1065,7 +1072,8 @@ private module Cached {
|
||||
TSourceParameterNode(ParamBaseCfgNode p) or
|
||||
TPatNode(PatCfgNode p) or
|
||||
TExprPostUpdateNode(ExprCfgNode e) {
|
||||
isArgumentForCall(e, _, _) or e = any(FieldExprCfgNode access).getExpr()
|
||||
isArgumentForCall(e, _, _) or
|
||||
e = [any(FieldExprCfgNode access).getExpr(), any(TryExprCfgNode try).getExpr()]
|
||||
} or
|
||||
TSsaNode(SsaImpl::DataFlowIntegration::SsaNode node) or
|
||||
TFlowSummaryNode(FlowSummaryImpl::Private::SummaryNode sn)
|
||||
|
||||
@@ -204,190 +204,220 @@ localStep
|
||||
| main.rs:224:9:224:10 | [SSA] s1 | main.rs:225:10:225:11 | s1 |
|
||||
| main.rs:224:9:224:10 | s1 | main.rs:224:9:224:10 | [SSA] s1 |
|
||||
| main.rs:224:14:224:29 | Some(...) | main.rs:224:9:224:10 | s1 |
|
||||
| main.rs:234:9:234:10 | [SSA] s1 | main.rs:236:11:236:12 | s1 |
|
||||
| main.rs:234:9:234:10 | s1 | main.rs:234:9:234:10 | [SSA] s1 |
|
||||
| main.rs:234:14:234:39 | ...::A(...) | main.rs:234:9:234:10 | s1 |
|
||||
| main.rs:235:9:235:10 | [SSA] s2 | main.rs:243:11:243:12 | s2 |
|
||||
| main.rs:235:9:235:10 | s2 | main.rs:235:9:235:10 | [SSA] s2 |
|
||||
| main.rs:235:14:235:30 | ...::B(...) | main.rs:235:9:235:10 | s2 |
|
||||
| main.rs:236:11:236:12 | s1 | main.rs:237:9:237:25 | ...::A(...) |
|
||||
| main.rs:236:11:236:12 | s1 | main.rs:238:9:238:25 | ...::B(...) |
|
||||
| main.rs:236:11:236:12 | s1 | main.rs:240:11:240:12 | s1 |
|
||||
| main.rs:237:24:237:24 | [SSA] n | main.rs:237:35:237:35 | n |
|
||||
| main.rs:237:24:237:24 | n | main.rs:237:24:237:24 | [SSA] n |
|
||||
| main.rs:237:30:237:36 | sink(...) | main.rs:236:5:239:5 | match s1 { ... } |
|
||||
| main.rs:238:24:238:24 | [SSA] n | main.rs:238:35:238:35 | n |
|
||||
| main.rs:238:24:238:24 | n | main.rs:238:24:238:24 | [SSA] n |
|
||||
| main.rs:238:30:238:36 | sink(...) | main.rs:236:5:239:5 | match s1 { ... } |
|
||||
| main.rs:240:11:240:12 | s1 | main.rs:241:9:241:45 | ... \| ... |
|
||||
| main.rs:241:9:241:45 | ... \| ... | main.rs:241:9:241:25 | ...::A(...) |
|
||||
| main.rs:241:9:241:45 | ... \| ... | main.rs:241:29:241:45 | ...::B(...) |
|
||||
| main.rs:241:9:241:45 | [SSA] [match(true)] phi | main.rs:241:55:241:55 | n |
|
||||
| main.rs:241:24:241:24 | [SSA] [input] [match(true)] phi | main.rs:241:9:241:45 | [SSA] [match(true)] phi |
|
||||
| main.rs:241:24:241:24 | [SSA] n | main.rs:241:24:241:24 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:241:24:241:24 | n | main.rs:241:24:241:24 | [SSA] n |
|
||||
| main.rs:241:44:241:44 | [SSA] [input] [match(true)] phi | main.rs:241:9:241:45 | [SSA] [match(true)] phi |
|
||||
| main.rs:241:44:241:44 | [SSA] n | main.rs:241:44:241:44 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:241:44:241:44 | n | main.rs:241:44:241:44 | [SSA] n |
|
||||
| main.rs:241:50:241:56 | sink(...) | main.rs:240:5:242:5 | match s1 { ... } |
|
||||
| main.rs:243:5:246:5 | match s2 { ... } | main.rs:233:48:247:1 | { ... } |
|
||||
| main.rs:243:11:243:12 | s2 | main.rs:244:9:244:25 | ...::A(...) |
|
||||
| main.rs:243:11:243:12 | s2 | main.rs:245:9:245:25 | ...::B(...) |
|
||||
| main.rs:244:24:244:24 | [SSA] n | main.rs:244:35:244:35 | n |
|
||||
| main.rs:244:24:244:24 | n | main.rs:244:24:244:24 | [SSA] n |
|
||||
| main.rs:244:30:244:36 | sink(...) | main.rs:243:5:246:5 | match s2 { ... } |
|
||||
| main.rs:245:24:245:24 | [SSA] n | main.rs:245:35:245:35 | n |
|
||||
| main.rs:245:24:245:24 | n | main.rs:245:24:245:24 | [SSA] n |
|
||||
| main.rs:245:30:245:36 | sink(...) | main.rs:243:5:246:5 | match s2 { ... } |
|
||||
| main.rs:252:9:252:10 | [SSA] s1 | main.rs:254:11:254:12 | s1 |
|
||||
| main.rs:252:9:252:10 | s1 | main.rs:252:9:252:10 | [SSA] s1 |
|
||||
| main.rs:252:14:252:26 | A(...) | main.rs:252:9:252:10 | s1 |
|
||||
| main.rs:253:9:253:10 | [SSA] s2 | main.rs:261:11:261:12 | s2 |
|
||||
| main.rs:253:9:253:10 | s2 | main.rs:253:9:253:10 | [SSA] s2 |
|
||||
| main.rs:253:14:253:17 | B(...) | main.rs:253:9:253:10 | s2 |
|
||||
| main.rs:254:11:254:12 | s1 | main.rs:255:9:255:12 | A(...) |
|
||||
| main.rs:254:11:254:12 | s1 | main.rs:256:9:256:12 | B(...) |
|
||||
| main.rs:254:11:254:12 | s1 | main.rs:258:11:258:12 | s1 |
|
||||
| main.rs:255:11:255:11 | [SSA] n | main.rs:255:22:255:22 | n |
|
||||
| main.rs:255:11:255:11 | n | main.rs:255:11:255:11 | [SSA] n |
|
||||
| main.rs:255:17:255:23 | sink(...) | main.rs:254:5:257:5 | match s1 { ... } |
|
||||
| main.rs:256:11:256:11 | [SSA] n | main.rs:256:22:256:22 | n |
|
||||
| main.rs:256:11:256:11 | n | main.rs:256:11:256:11 | [SSA] n |
|
||||
| main.rs:256:17:256:23 | sink(...) | main.rs:254:5:257:5 | match s1 { ... } |
|
||||
| main.rs:258:11:258:12 | s1 | main.rs:259:9:259:19 | ... \| ... |
|
||||
| main.rs:259:9:259:19 | ... \| ... | main.rs:259:9:259:12 | A(...) |
|
||||
| main.rs:259:9:259:19 | ... \| ... | main.rs:259:16:259:19 | B(...) |
|
||||
| main.rs:259:9:259:19 | [SSA] [match(true)] phi | main.rs:259:29:259:29 | n |
|
||||
| main.rs:259:11:259:11 | [SSA] [input] [match(true)] phi | main.rs:259:9:259:19 | [SSA] [match(true)] phi |
|
||||
| main.rs:259:11:259:11 | [SSA] n | main.rs:259:11:259:11 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:259:11:259:11 | n | main.rs:259:11:259:11 | [SSA] n |
|
||||
| main.rs:259:18:259:18 | [SSA] [input] [match(true)] phi | main.rs:259:9:259:19 | [SSA] [match(true)] phi |
|
||||
| main.rs:259:18:259:18 | [SSA] n | main.rs:259:18:259:18 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:259:18:259:18 | n | main.rs:259:18:259:18 | [SSA] n |
|
||||
| main.rs:259:24:259:30 | sink(...) | main.rs:258:5:260:5 | match s1 { ... } |
|
||||
| main.rs:261:5:264:5 | match s2 { ... } | main.rs:251:50:265:1 | { ... } |
|
||||
| main.rs:261:11:261:12 | s2 | main.rs:262:9:262:12 | A(...) |
|
||||
| main.rs:261:11:261:12 | s2 | main.rs:263:9:263:12 | B(...) |
|
||||
| main.rs:262:11:262:11 | [SSA] n | main.rs:262:22:262:22 | n |
|
||||
| main.rs:262:11:262:11 | n | main.rs:262:11:262:11 | [SSA] n |
|
||||
| main.rs:262:17:262:23 | sink(...) | main.rs:261:5:264:5 | match s2 { ... } |
|
||||
| main.rs:263:11:263:11 | [SSA] n | main.rs:263:22:263:22 | n |
|
||||
| main.rs:263:11:263:11 | n | main.rs:263:11:263:11 | [SSA] n |
|
||||
| main.rs:263:17:263:23 | sink(...) | main.rs:261:5:264:5 | match s2 { ... } |
|
||||
| main.rs:273:9:273:10 | [SSA] s1 | main.rs:277:11:277:12 | s1 |
|
||||
| main.rs:273:9:273:10 | s1 | main.rs:273:9:273:10 | [SSA] s1 |
|
||||
| main.rs:273:14:275:5 | ...::C {...} | main.rs:273:9:273:10 | s1 |
|
||||
| main.rs:276:9:276:10 | [SSA] s2 | main.rs:284:11:284:12 | s2 |
|
||||
| main.rs:276:9:276:10 | s2 | main.rs:276:9:276:10 | [SSA] s2 |
|
||||
| main.rs:276:14:276:43 | ...::D {...} | main.rs:276:9:276:10 | s2 |
|
||||
| main.rs:277:11:277:12 | s1 | main.rs:278:9:278:38 | ...::C {...} |
|
||||
| main.rs:277:11:277:12 | s1 | main.rs:279:9:279:38 | ...::D {...} |
|
||||
| main.rs:277:11:277:12 | s1 | main.rs:281:11:281:12 | s1 |
|
||||
| main.rs:278:36:278:36 | [SSA] n | main.rs:278:48:278:48 | n |
|
||||
| main.rs:278:36:278:36 | n | main.rs:278:36:278:36 | [SSA] n |
|
||||
| main.rs:278:43:278:49 | sink(...) | main.rs:277:5:280:5 | match s1 { ... } |
|
||||
| main.rs:279:36:279:36 | [SSA] n | main.rs:279:48:279:48 | n |
|
||||
| main.rs:279:36:279:36 | n | main.rs:279:36:279:36 | [SSA] n |
|
||||
| main.rs:279:43:279:49 | sink(...) | main.rs:277:5:280:5 | match s1 { ... } |
|
||||
| main.rs:281:11:281:12 | s1 | main.rs:282:9:282:71 | ... \| ... |
|
||||
| main.rs:282:9:282:71 | ... \| ... | main.rs:282:9:282:38 | ...::C {...} |
|
||||
| main.rs:282:9:282:71 | ... \| ... | main.rs:282:42:282:71 | ...::D {...} |
|
||||
| main.rs:282:9:282:71 | [SSA] [match(true)] phi | main.rs:282:81:282:81 | n |
|
||||
| main.rs:282:36:282:36 | [SSA] [input] [match(true)] phi | main.rs:282:9:282:71 | [SSA] [match(true)] phi |
|
||||
| main.rs:282:36:282:36 | [SSA] n | main.rs:282:36:282:36 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:282:36:282:36 | n | main.rs:282:36:282:36 | [SSA] n |
|
||||
| main.rs:282:69:282:69 | [SSA] [input] [match(true)] phi | main.rs:282:9:282:71 | [SSA] [match(true)] phi |
|
||||
| main.rs:282:69:282:69 | [SSA] n | main.rs:282:69:282:69 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:282:69:282:69 | n | main.rs:282:69:282:69 | [SSA] n |
|
||||
| main.rs:282:76:282:82 | sink(...) | main.rs:281:5:283:5 | match s1 { ... } |
|
||||
| main.rs:284:5:287:5 | match s2 { ... } | main.rs:272:49:288:1 | { ... } |
|
||||
| main.rs:284:11:284:12 | s2 | main.rs:285:9:285:38 | ...::C {...} |
|
||||
| main.rs:284:11:284:12 | s2 | main.rs:286:9:286:38 | ...::D {...} |
|
||||
| main.rs:285:36:285:36 | [SSA] n | main.rs:285:48:285:48 | n |
|
||||
| main.rs:285:36:285:36 | n | main.rs:285:36:285:36 | [SSA] n |
|
||||
| main.rs:285:43:285:49 | sink(...) | main.rs:284:5:287:5 | match s2 { ... } |
|
||||
| main.rs:286:36:286:36 | [SSA] n | main.rs:286:48:286:48 | n |
|
||||
| main.rs:286:36:286:36 | n | main.rs:286:36:286:36 | [SSA] n |
|
||||
| main.rs:286:43:286:49 | sink(...) | main.rs:284:5:287:5 | match s2 { ... } |
|
||||
| main.rs:293:9:293:10 | [SSA] s1 | main.rs:297:11:297:12 | s1 |
|
||||
| main.rs:293:9:293:10 | s1 | main.rs:293:9:293:10 | [SSA] s1 |
|
||||
| main.rs:293:14:295:5 | C {...} | main.rs:293:9:293:10 | s1 |
|
||||
| main.rs:296:9:296:10 | [SSA] s2 | main.rs:304:11:304:12 | s2 |
|
||||
| main.rs:296:9:296:10 | s2 | main.rs:296:9:296:10 | [SSA] s2 |
|
||||
| main.rs:296:14:296:29 | D {...} | main.rs:296:9:296:10 | s2 |
|
||||
| main.rs:297:11:297:12 | s1 | main.rs:298:9:298:24 | C {...} |
|
||||
| main.rs:297:11:297:12 | s1 | main.rs:299:9:299:24 | D {...} |
|
||||
| main.rs:297:11:297:12 | s1 | main.rs:301:11:301:12 | s1 |
|
||||
| main.rs:298:22:298:22 | [SSA] n | main.rs:298:34:298:34 | n |
|
||||
| main.rs:298:22:298:22 | n | main.rs:298:22:298:22 | [SSA] n |
|
||||
| main.rs:298:29:298:35 | sink(...) | main.rs:297:5:300:5 | match s1 { ... } |
|
||||
| main.rs:299:22:299:22 | [SSA] n | main.rs:299:34:299:34 | n |
|
||||
| main.rs:299:22:299:22 | n | main.rs:299:22:299:22 | [SSA] n |
|
||||
| main.rs:299:29:299:35 | sink(...) | main.rs:297:5:300:5 | match s1 { ... } |
|
||||
| main.rs:301:11:301:12 | s1 | main.rs:302:9:302:43 | ... \| ... |
|
||||
| main.rs:302:9:302:43 | ... \| ... | main.rs:302:9:302:24 | C {...} |
|
||||
| main.rs:302:9:302:43 | ... \| ... | main.rs:302:28:302:43 | D {...} |
|
||||
| main.rs:302:9:302:43 | [SSA] [match(true)] phi | main.rs:302:53:302:53 | n |
|
||||
| main.rs:302:22:302:22 | [SSA] [input] [match(true)] phi | main.rs:302:9:302:43 | [SSA] [match(true)] phi |
|
||||
| main.rs:302:22:302:22 | [SSA] n | main.rs:302:22:302:22 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:302:22:302:22 | n | main.rs:302:22:302:22 | [SSA] n |
|
||||
| main.rs:302:41:302:41 | [SSA] [input] [match(true)] phi | main.rs:302:9:302:43 | [SSA] [match(true)] phi |
|
||||
| main.rs:302:41:302:41 | [SSA] n | main.rs:302:41:302:41 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:302:41:302:41 | n | main.rs:302:41:302:41 | [SSA] n |
|
||||
| main.rs:302:48:302:54 | sink(...) | main.rs:301:5:303:5 | match s1 { ... } |
|
||||
| main.rs:304:5:307:5 | match s2 { ... } | main.rs:292:51:308:1 | { ... } |
|
||||
| main.rs:304:11:304:12 | s2 | main.rs:305:9:305:24 | C {...} |
|
||||
| main.rs:304:11:304:12 | s2 | main.rs:306:9:306:24 | D {...} |
|
||||
| main.rs:305:22:305:22 | [SSA] n | main.rs:305:34:305:34 | n |
|
||||
| main.rs:305:22:305:22 | n | main.rs:305:22:305:22 | [SSA] n |
|
||||
| main.rs:305:29:305:35 | sink(...) | main.rs:304:5:307:5 | match s2 { ... } |
|
||||
| main.rs:306:22:306:22 | [SSA] n | main.rs:306:34:306:34 | n |
|
||||
| main.rs:306:22:306:22 | n | main.rs:306:22:306:22 | [SSA] n |
|
||||
| main.rs:306:29:306:35 | sink(...) | main.rs:304:5:307:5 | match s2 { ... } |
|
||||
| main.rs:314:9:314:9 | [SSA] f | main.rs:315:10:315:10 | f |
|
||||
| main.rs:314:9:314:9 | f | main.rs:314:9:314:9 | [SSA] f |
|
||||
| main.rs:314:13:314:52 | \|...\| ... | main.rs:314:9:314:9 | f |
|
||||
| main.rs:314:14:314:17 | ... | main.rs:314:14:314:17 | cond |
|
||||
| main.rs:314:14:314:17 | [SSA] cond | main.rs:314:23:314:26 | cond |
|
||||
| main.rs:314:14:314:17 | cond | main.rs:314:14:314:17 | [SSA] cond |
|
||||
| main.rs:314:28:314:41 | { ... } | main.rs:314:20:314:52 | if cond {...} else {...} |
|
||||
| main.rs:314:30:314:39 | source(...) | main.rs:314:28:314:41 | { ... } |
|
||||
| main.rs:314:48:314:52 | { ... } | main.rs:314:20:314:52 | if cond {...} else {...} |
|
||||
| main.rs:314:50:314:50 | 0 | main.rs:314:48:314:52 | { ... } |
|
||||
| main.rs:319:9:319:9 | [SSA] f | main.rs:326:5:326:5 | f |
|
||||
| main.rs:319:9:319:9 | f | main.rs:319:9:319:9 | [SSA] f |
|
||||
| main.rs:319:13:324:9 | \|...\| ... | main.rs:319:9:319:9 | f |
|
||||
| main.rs:319:14:319:17 | ... | main.rs:319:14:319:17 | cond |
|
||||
| main.rs:319:14:319:17 | [SSA] cond | main.rs:320:12:320:15 | cond |
|
||||
| main.rs:319:14:319:17 | cond | main.rs:319:14:319:17 | [SSA] cond |
|
||||
| main.rs:319:20:319:23 | ... | main.rs:319:20:319:23 | data |
|
||||
| main.rs:319:20:319:23 | [SSA] data | main.rs:321:18:321:21 | data |
|
||||
| main.rs:319:20:319:23 | data | main.rs:319:20:319:23 | [SSA] data |
|
||||
| main.rs:320:17:322:9 | { ... } | main.rs:320:9:324:9 | if cond {...} else {...} |
|
||||
| main.rs:322:16:324:9 | { ... } | main.rs:320:9:324:9 | if cond {...} else {...} |
|
||||
| main.rs:323:13:323:19 | sink(...) | main.rs:322:16:324:9 | { ... } |
|
||||
| main.rs:325:9:325:9 | [SSA] a | main.rs:326:13:326:13 | a |
|
||||
| main.rs:325:9:325:9 | a | main.rs:325:9:325:9 | [SSA] a |
|
||||
| main.rs:325:13:325:22 | source(...) | main.rs:325:9:325:9 | a |
|
||||
| main.rs:330:9:330:9 | [SSA] f | main.rs:337:13:337:13 | f |
|
||||
| main.rs:330:9:330:9 | f | main.rs:330:9:330:9 | [SSA] f |
|
||||
| main.rs:330:13:335:9 | \|...\| ... | main.rs:330:9:330:9 | f |
|
||||
| main.rs:330:14:330:17 | ... | main.rs:330:14:330:17 | cond |
|
||||
| main.rs:330:14:330:17 | [SSA] cond | main.rs:331:12:331:15 | cond |
|
||||
| main.rs:330:14:330:17 | cond | main.rs:330:14:330:17 | [SSA] cond |
|
||||
| main.rs:330:20:330:23 | ... | main.rs:330:20:330:23 | data |
|
||||
| main.rs:330:20:330:23 | [SSA] data | main.rs:332:13:332:16 | data |
|
||||
| main.rs:330:20:330:23 | data | main.rs:330:20:330:23 | [SSA] data |
|
||||
| main.rs:331:17:333:9 | { ... } | main.rs:331:9:335:9 | if cond {...} else {...} |
|
||||
| main.rs:332:13:332:16 | data | main.rs:331:17:333:9 | { ... } |
|
||||
| main.rs:333:16:335:9 | { ... } | main.rs:331:9:335:9 | if cond {...} else {...} |
|
||||
| main.rs:334:13:334:13 | 0 | main.rs:333:16:335:9 | { ... } |
|
||||
| main.rs:336:9:336:9 | [SSA] a | main.rs:337:21:337:21 | a |
|
||||
| main.rs:336:9:336:9 | a | main.rs:336:9:336:9 | [SSA] a |
|
||||
| main.rs:336:13:336:22 | source(...) | main.rs:336:9:336:9 | a |
|
||||
| main.rs:337:9:337:9 | [SSA] b | main.rs:338:10:338:10 | b |
|
||||
| main.rs:337:9:337:9 | b | main.rs:337:9:337:9 | [SSA] b |
|
||||
| main.rs:337:13:337:22 | f(...) | main.rs:337:9:337:9 | b |
|
||||
| main.rs:229:9:229:10 | [SSA] s1 | main.rs:231:14:231:15 | s1 |
|
||||
| main.rs:229:9:229:10 | s1 | main.rs:229:9:229:10 | [SSA] s1 |
|
||||
| main.rs:229:14:229:29 | Some(...) | main.rs:229:9:229:10 | s1 |
|
||||
| main.rs:230:9:230:10 | [SSA] s2 | main.rs:233:10:233:11 | s2 |
|
||||
| main.rs:230:9:230:10 | s2 | main.rs:230:9:230:10 | [SSA] s2 |
|
||||
| main.rs:230:14:230:20 | Some(...) | main.rs:230:9:230:10 | s2 |
|
||||
| main.rs:231:9:231:10 | [SSA] i1 | main.rs:232:10:232:11 | i1 |
|
||||
| main.rs:231:9:231:10 | i1 | main.rs:231:9:231:10 | [SSA] i1 |
|
||||
| main.rs:231:14:231:16 | TryExpr | main.rs:231:9:231:10 | i1 |
|
||||
| main.rs:234:5:234:11 | Some(...) | main.rs:228:41:235:1 | { ... } |
|
||||
| main.rs:238:9:238:10 | [SSA] s1 | main.rs:241:14:241:15 | s1 |
|
||||
| main.rs:238:9:238:10 | s1 | main.rs:238:9:238:10 | [SSA] s1 |
|
||||
| main.rs:238:32:238:45 | Ok(...) | main.rs:238:9:238:10 | s1 |
|
||||
| main.rs:239:9:239:10 | [SSA] s2 | main.rs:242:14:242:15 | s2 |
|
||||
| main.rs:239:9:239:10 | s2 | main.rs:239:9:239:10 | [SSA] s2 |
|
||||
| main.rs:239:32:239:36 | Ok(...) | main.rs:239:9:239:10 | s2 |
|
||||
| main.rs:240:9:240:10 | [SSA] s3 | main.rs:245:14:245:15 | s3 |
|
||||
| main.rs:240:9:240:10 | s3 | main.rs:240:9:240:10 | [SSA] s3 |
|
||||
| main.rs:240:32:240:46 | Err(...) | main.rs:240:9:240:10 | s3 |
|
||||
| main.rs:241:9:241:10 | [SSA] i1 | main.rs:243:10:243:11 | i1 |
|
||||
| main.rs:241:9:241:10 | i1 | main.rs:241:9:241:10 | [SSA] i1 |
|
||||
| main.rs:241:14:241:16 | TryExpr | main.rs:241:9:241:10 | i1 |
|
||||
| main.rs:242:9:242:10 | [SSA] i2 | main.rs:244:10:244:11 | i2 |
|
||||
| main.rs:242:9:242:10 | i2 | main.rs:242:9:242:10 | [SSA] i2 |
|
||||
| main.rs:242:14:242:16 | TryExpr | main.rs:242:9:242:10 | i2 |
|
||||
| main.rs:245:9:245:10 | [SSA] i3 | main.rs:246:10:246:11 | i3 |
|
||||
| main.rs:245:9:245:10 | i3 | main.rs:245:9:245:10 | [SSA] i3 |
|
||||
| main.rs:245:14:245:16 | TryExpr | main.rs:245:9:245:10 | i3 |
|
||||
| main.rs:247:5:247:9 | Ok(...) | main.rs:237:46:248:1 | { ... } |
|
||||
| main.rs:256:9:256:10 | [SSA] s1 | main.rs:258:11:258:12 | s1 |
|
||||
| main.rs:256:9:256:10 | s1 | main.rs:256:9:256:10 | [SSA] s1 |
|
||||
| main.rs:256:14:256:39 | ...::A(...) | main.rs:256:9:256:10 | s1 |
|
||||
| main.rs:257:9:257:10 | [SSA] s2 | main.rs:265:11:265:12 | s2 |
|
||||
| main.rs:257:9:257:10 | s2 | main.rs:257:9:257:10 | [SSA] s2 |
|
||||
| main.rs:257:14:257:30 | ...::B(...) | main.rs:257:9:257:10 | s2 |
|
||||
| main.rs:258:11:258:12 | s1 | main.rs:259:9:259:25 | ...::A(...) |
|
||||
| main.rs:258:11:258:12 | s1 | main.rs:260:9:260:25 | ...::B(...) |
|
||||
| main.rs:258:11:258:12 | s1 | main.rs:262:11:262:12 | s1 |
|
||||
| main.rs:259:24:259:24 | [SSA] n | main.rs:259:35:259:35 | n |
|
||||
| main.rs:259:24:259:24 | n | main.rs:259:24:259:24 | [SSA] n |
|
||||
| main.rs:259:30:259:36 | sink(...) | main.rs:258:5:261:5 | match s1 { ... } |
|
||||
| main.rs:260:24:260:24 | [SSA] n | main.rs:260:35:260:35 | n |
|
||||
| main.rs:260:24:260:24 | n | main.rs:260:24:260:24 | [SSA] n |
|
||||
| main.rs:260:30:260:36 | sink(...) | main.rs:258:5:261:5 | match s1 { ... } |
|
||||
| main.rs:262:11:262:12 | s1 | main.rs:263:9:263:45 | ... \| ... |
|
||||
| main.rs:263:9:263:45 | ... \| ... | main.rs:263:9:263:25 | ...::A(...) |
|
||||
| main.rs:263:9:263:45 | ... \| ... | main.rs:263:29:263:45 | ...::B(...) |
|
||||
| main.rs:263:9:263:45 | [SSA] [match(true)] phi | main.rs:263:55:263:55 | n |
|
||||
| main.rs:263:24:263:24 | [SSA] [input] [match(true)] phi | main.rs:263:9:263:45 | [SSA] [match(true)] phi |
|
||||
| main.rs:263:24:263:24 | [SSA] n | main.rs:263:24:263:24 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:263:24:263:24 | n | main.rs:263:24:263:24 | [SSA] n |
|
||||
| main.rs:263:44:263:44 | [SSA] [input] [match(true)] phi | main.rs:263:9:263:45 | [SSA] [match(true)] phi |
|
||||
| main.rs:263:44:263:44 | [SSA] n | main.rs:263:44:263:44 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:263:44:263:44 | n | main.rs:263:44:263:44 | [SSA] n |
|
||||
| main.rs:263:50:263:56 | sink(...) | main.rs:262:5:264:5 | match s1 { ... } |
|
||||
| main.rs:265:5:268:5 | match s2 { ... } | main.rs:255:48:269:1 | { ... } |
|
||||
| main.rs:265:11:265:12 | s2 | main.rs:266:9:266:25 | ...::A(...) |
|
||||
| main.rs:265:11:265:12 | s2 | main.rs:267:9:267:25 | ...::B(...) |
|
||||
| main.rs:266:24:266:24 | [SSA] n | main.rs:266:35:266:35 | n |
|
||||
| main.rs:266:24:266:24 | n | main.rs:266:24:266:24 | [SSA] n |
|
||||
| main.rs:266:30:266:36 | sink(...) | main.rs:265:5:268:5 | match s2 { ... } |
|
||||
| main.rs:267:24:267:24 | [SSA] n | main.rs:267:35:267:35 | n |
|
||||
| main.rs:267:24:267:24 | n | main.rs:267:24:267:24 | [SSA] n |
|
||||
| main.rs:267:30:267:36 | sink(...) | main.rs:265:5:268:5 | match s2 { ... } |
|
||||
| main.rs:274:9:274:10 | [SSA] s1 | main.rs:276:11:276:12 | s1 |
|
||||
| main.rs:274:9:274:10 | s1 | main.rs:274:9:274:10 | [SSA] s1 |
|
||||
| main.rs:274:14:274:26 | A(...) | main.rs:274:9:274:10 | s1 |
|
||||
| main.rs:275:9:275:10 | [SSA] s2 | main.rs:283:11:283:12 | s2 |
|
||||
| main.rs:275:9:275:10 | s2 | main.rs:275:9:275:10 | [SSA] s2 |
|
||||
| main.rs:275:14:275:17 | B(...) | main.rs:275:9:275:10 | s2 |
|
||||
| main.rs:276:11:276:12 | s1 | main.rs:277:9:277:12 | A(...) |
|
||||
| main.rs:276:11:276:12 | s1 | main.rs:278:9:278:12 | B(...) |
|
||||
| main.rs:276:11:276:12 | s1 | main.rs:280:11:280:12 | s1 |
|
||||
| main.rs:277:11:277:11 | [SSA] n | main.rs:277:22:277:22 | n |
|
||||
| main.rs:277:11:277:11 | n | main.rs:277:11:277:11 | [SSA] n |
|
||||
| main.rs:277:17:277:23 | sink(...) | main.rs:276:5:279:5 | match s1 { ... } |
|
||||
| main.rs:278:11:278:11 | [SSA] n | main.rs:278:22:278:22 | n |
|
||||
| main.rs:278:11:278:11 | n | main.rs:278:11:278:11 | [SSA] n |
|
||||
| main.rs:278:17:278:23 | sink(...) | main.rs:276:5:279:5 | match s1 { ... } |
|
||||
| main.rs:280:11:280:12 | s1 | main.rs:281:9:281:19 | ... \| ... |
|
||||
| main.rs:281:9:281:19 | ... \| ... | main.rs:281:9:281:12 | A(...) |
|
||||
| main.rs:281:9:281:19 | ... \| ... | main.rs:281:16:281:19 | B(...) |
|
||||
| main.rs:281:9:281:19 | [SSA] [match(true)] phi | main.rs:281:29:281:29 | n |
|
||||
| main.rs:281:11:281:11 | [SSA] [input] [match(true)] phi | main.rs:281:9:281:19 | [SSA] [match(true)] phi |
|
||||
| main.rs:281:11:281:11 | [SSA] n | main.rs:281:11:281:11 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:281:11:281:11 | n | main.rs:281:11:281:11 | [SSA] n |
|
||||
| main.rs:281:18:281:18 | [SSA] [input] [match(true)] phi | main.rs:281:9:281:19 | [SSA] [match(true)] phi |
|
||||
| main.rs:281:18:281:18 | [SSA] n | main.rs:281:18:281:18 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:281:18:281:18 | n | main.rs:281:18:281:18 | [SSA] n |
|
||||
| main.rs:281:24:281:30 | sink(...) | main.rs:280:5:282:5 | match s1 { ... } |
|
||||
| main.rs:283:5:286:5 | match s2 { ... } | main.rs:273:50:287:1 | { ... } |
|
||||
| main.rs:283:11:283:12 | s2 | main.rs:284:9:284:12 | A(...) |
|
||||
| main.rs:283:11:283:12 | s2 | main.rs:285:9:285:12 | B(...) |
|
||||
| main.rs:284:11:284:11 | [SSA] n | main.rs:284:22:284:22 | n |
|
||||
| main.rs:284:11:284:11 | n | main.rs:284:11:284:11 | [SSA] n |
|
||||
| main.rs:284:17:284:23 | sink(...) | main.rs:283:5:286:5 | match s2 { ... } |
|
||||
| main.rs:285:11:285:11 | [SSA] n | main.rs:285:22:285:22 | n |
|
||||
| main.rs:285:11:285:11 | n | main.rs:285:11:285:11 | [SSA] n |
|
||||
| main.rs:285:17:285:23 | sink(...) | main.rs:283:5:286:5 | match s2 { ... } |
|
||||
| main.rs:295:9:295:10 | [SSA] s1 | main.rs:299:11:299:12 | s1 |
|
||||
| main.rs:295:9:295:10 | s1 | main.rs:295:9:295:10 | [SSA] s1 |
|
||||
| main.rs:295:14:297:5 | ...::C {...} | main.rs:295:9:295:10 | s1 |
|
||||
| main.rs:298:9:298:10 | [SSA] s2 | main.rs:306:11:306:12 | s2 |
|
||||
| main.rs:298:9:298:10 | s2 | main.rs:298:9:298:10 | [SSA] s2 |
|
||||
| main.rs:298:14:298:43 | ...::D {...} | main.rs:298:9:298:10 | s2 |
|
||||
| main.rs:299:11:299:12 | s1 | main.rs:300:9:300:38 | ...::C {...} |
|
||||
| main.rs:299:11:299:12 | s1 | main.rs:301:9:301:38 | ...::D {...} |
|
||||
| main.rs:299:11:299:12 | s1 | main.rs:303:11:303:12 | s1 |
|
||||
| main.rs:300:36:300:36 | [SSA] n | main.rs:300:48:300:48 | n |
|
||||
| main.rs:300:36:300:36 | n | main.rs:300:36:300:36 | [SSA] n |
|
||||
| main.rs:300:43:300:49 | sink(...) | main.rs:299:5:302:5 | match s1 { ... } |
|
||||
| main.rs:301:36:301:36 | [SSA] n | main.rs:301:48:301:48 | n |
|
||||
| main.rs:301:36:301:36 | n | main.rs:301:36:301:36 | [SSA] n |
|
||||
| main.rs:301:43:301:49 | sink(...) | main.rs:299:5:302:5 | match s1 { ... } |
|
||||
| main.rs:303:11:303:12 | s1 | main.rs:304:9:304:71 | ... \| ... |
|
||||
| main.rs:304:9:304:71 | ... \| ... | main.rs:304:9:304:38 | ...::C {...} |
|
||||
| main.rs:304:9:304:71 | ... \| ... | main.rs:304:42:304:71 | ...::D {...} |
|
||||
| main.rs:304:9:304:71 | [SSA] [match(true)] phi | main.rs:304:81:304:81 | n |
|
||||
| main.rs:304:36:304:36 | [SSA] [input] [match(true)] phi | main.rs:304:9:304:71 | [SSA] [match(true)] phi |
|
||||
| main.rs:304:36:304:36 | [SSA] n | main.rs:304:36:304:36 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:304:36:304:36 | n | main.rs:304:36:304:36 | [SSA] n |
|
||||
| main.rs:304:69:304:69 | [SSA] [input] [match(true)] phi | main.rs:304:9:304:71 | [SSA] [match(true)] phi |
|
||||
| main.rs:304:69:304:69 | [SSA] n | main.rs:304:69:304:69 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:304:69:304:69 | n | main.rs:304:69:304:69 | [SSA] n |
|
||||
| main.rs:304:76:304:82 | sink(...) | main.rs:303:5:305:5 | match s1 { ... } |
|
||||
| main.rs:306:5:309:5 | match s2 { ... } | main.rs:294:49:310:1 | { ... } |
|
||||
| main.rs:306:11:306:12 | s2 | main.rs:307:9:307:38 | ...::C {...} |
|
||||
| main.rs:306:11:306:12 | s2 | main.rs:308:9:308:38 | ...::D {...} |
|
||||
| main.rs:307:36:307:36 | [SSA] n | main.rs:307:48:307:48 | n |
|
||||
| main.rs:307:36:307:36 | n | main.rs:307:36:307:36 | [SSA] n |
|
||||
| main.rs:307:43:307:49 | sink(...) | main.rs:306:5:309:5 | match s2 { ... } |
|
||||
| main.rs:308:36:308:36 | [SSA] n | main.rs:308:48:308:48 | n |
|
||||
| main.rs:308:36:308:36 | n | main.rs:308:36:308:36 | [SSA] n |
|
||||
| main.rs:308:43:308:49 | sink(...) | main.rs:306:5:309:5 | match s2 { ... } |
|
||||
| main.rs:315:9:315:10 | [SSA] s1 | main.rs:319:11:319:12 | s1 |
|
||||
| main.rs:315:9:315:10 | s1 | main.rs:315:9:315:10 | [SSA] s1 |
|
||||
| main.rs:315:14:317:5 | C {...} | main.rs:315:9:315:10 | s1 |
|
||||
| main.rs:318:9:318:10 | [SSA] s2 | main.rs:326:11:326:12 | s2 |
|
||||
| main.rs:318:9:318:10 | s2 | main.rs:318:9:318:10 | [SSA] s2 |
|
||||
| main.rs:318:14:318:29 | D {...} | main.rs:318:9:318:10 | s2 |
|
||||
| main.rs:319:11:319:12 | s1 | main.rs:320:9:320:24 | C {...} |
|
||||
| main.rs:319:11:319:12 | s1 | main.rs:321:9:321:24 | D {...} |
|
||||
| main.rs:319:11:319:12 | s1 | main.rs:323:11:323:12 | s1 |
|
||||
| main.rs:320:22:320:22 | [SSA] n | main.rs:320:34:320:34 | n |
|
||||
| main.rs:320:22:320:22 | n | main.rs:320:22:320:22 | [SSA] n |
|
||||
| main.rs:320:29:320:35 | sink(...) | main.rs:319:5:322:5 | match s1 { ... } |
|
||||
| main.rs:321:22:321:22 | [SSA] n | main.rs:321:34:321:34 | n |
|
||||
| main.rs:321:22:321:22 | n | main.rs:321:22:321:22 | [SSA] n |
|
||||
| main.rs:321:29:321:35 | sink(...) | main.rs:319:5:322:5 | match s1 { ... } |
|
||||
| main.rs:323:11:323:12 | s1 | main.rs:324:9:324:43 | ... \| ... |
|
||||
| main.rs:324:9:324:43 | ... \| ... | main.rs:324:9:324:24 | C {...} |
|
||||
| main.rs:324:9:324:43 | ... \| ... | main.rs:324:28:324:43 | D {...} |
|
||||
| main.rs:324:9:324:43 | [SSA] [match(true)] phi | main.rs:324:53:324:53 | n |
|
||||
| main.rs:324:22:324:22 | [SSA] [input] [match(true)] phi | main.rs:324:9:324:43 | [SSA] [match(true)] phi |
|
||||
| main.rs:324:22:324:22 | [SSA] n | main.rs:324:22:324:22 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:324:22:324:22 | n | main.rs:324:22:324:22 | [SSA] n |
|
||||
| main.rs:324:41:324:41 | [SSA] [input] [match(true)] phi | main.rs:324:9:324:43 | [SSA] [match(true)] phi |
|
||||
| main.rs:324:41:324:41 | [SSA] n | main.rs:324:41:324:41 | [SSA] [input] [match(true)] phi |
|
||||
| main.rs:324:41:324:41 | n | main.rs:324:41:324:41 | [SSA] n |
|
||||
| main.rs:324:48:324:54 | sink(...) | main.rs:323:5:325:5 | match s1 { ... } |
|
||||
| main.rs:326:5:329:5 | match s2 { ... } | main.rs:314:51:330:1 | { ... } |
|
||||
| main.rs:326:11:326:12 | s2 | main.rs:327:9:327:24 | C {...} |
|
||||
| main.rs:326:11:326:12 | s2 | main.rs:328:9:328:24 | D {...} |
|
||||
| main.rs:327:22:327:22 | [SSA] n | main.rs:327:34:327:34 | n |
|
||||
| main.rs:327:22:327:22 | n | main.rs:327:22:327:22 | [SSA] n |
|
||||
| main.rs:327:29:327:35 | sink(...) | main.rs:326:5:329:5 | match s2 { ... } |
|
||||
| main.rs:328:22:328:22 | [SSA] n | main.rs:328:34:328:34 | n |
|
||||
| main.rs:328:22:328:22 | n | main.rs:328:22:328:22 | [SSA] n |
|
||||
| main.rs:328:29:328:35 | sink(...) | main.rs:326:5:329:5 | match s2 { ... } |
|
||||
| main.rs:336:9:336:9 | [SSA] f | main.rs:337:10:337:10 | f |
|
||||
| main.rs:336:9:336:9 | f | main.rs:336:9:336:9 | [SSA] f |
|
||||
| main.rs:336:13:336:52 | \|...\| ... | main.rs:336:9:336:9 | f |
|
||||
| main.rs:336:14:336:17 | ... | main.rs:336:14:336:17 | cond |
|
||||
| main.rs:336:14:336:17 | [SSA] cond | main.rs:336:23:336:26 | cond |
|
||||
| main.rs:336:14:336:17 | cond | main.rs:336:14:336:17 | [SSA] cond |
|
||||
| main.rs:336:28:336:41 | { ... } | main.rs:336:20:336:52 | if cond {...} else {...} |
|
||||
| main.rs:336:30:336:39 | source(...) | main.rs:336:28:336:41 | { ... } |
|
||||
| main.rs:336:48:336:52 | { ... } | main.rs:336:20:336:52 | if cond {...} else {...} |
|
||||
| main.rs:336:50:336:50 | 0 | main.rs:336:48:336:52 | { ... } |
|
||||
| main.rs:341:9:341:9 | [SSA] f | main.rs:348:5:348:5 | f |
|
||||
| main.rs:341:9:341:9 | f | main.rs:341:9:341:9 | [SSA] f |
|
||||
| main.rs:341:13:346:9 | \|...\| ... | main.rs:341:9:341:9 | f |
|
||||
| main.rs:341:14:341:17 | ... | main.rs:341:14:341:17 | cond |
|
||||
| main.rs:341:14:341:17 | [SSA] cond | main.rs:342:12:342:15 | cond |
|
||||
| main.rs:341:14:341:17 | cond | main.rs:341:14:341:17 | [SSA] cond |
|
||||
| main.rs:341:20:341:23 | ... | main.rs:341:20:341:23 | data |
|
||||
| main.rs:341:20:341:23 | [SSA] data | main.rs:343:18:343:21 | data |
|
||||
| main.rs:341:20:341:23 | data | main.rs:341:20:341:23 | [SSA] data |
|
||||
| main.rs:342:17:344:9 | { ... } | main.rs:342:9:346:9 | if cond {...} else {...} |
|
||||
| main.rs:344:16:346:9 | { ... } | main.rs:342:9:346:9 | if cond {...} else {...} |
|
||||
| main.rs:345:13:345:19 | sink(...) | main.rs:344:16:346:9 | { ... } |
|
||||
| main.rs:347:9:347:9 | [SSA] a | main.rs:348:13:348:13 | a |
|
||||
| main.rs:347:9:347:9 | a | main.rs:347:9:347:9 | [SSA] a |
|
||||
| main.rs:347:13:347:22 | source(...) | main.rs:347:9:347:9 | a |
|
||||
| main.rs:352:9:352:9 | [SSA] f | main.rs:359:13:359:13 | f |
|
||||
| main.rs:352:9:352:9 | f | main.rs:352:9:352:9 | [SSA] f |
|
||||
| main.rs:352:13:357:9 | \|...\| ... | main.rs:352:9:352:9 | f |
|
||||
| main.rs:352:14:352:17 | ... | main.rs:352:14:352:17 | cond |
|
||||
| main.rs:352:14:352:17 | [SSA] cond | main.rs:353:12:353:15 | cond |
|
||||
| main.rs:352:14:352:17 | cond | main.rs:352:14:352:17 | [SSA] cond |
|
||||
| main.rs:352:20:352:23 | ... | main.rs:352:20:352:23 | data |
|
||||
| main.rs:352:20:352:23 | [SSA] data | main.rs:354:13:354:16 | data |
|
||||
| main.rs:352:20:352:23 | data | main.rs:352:20:352:23 | [SSA] data |
|
||||
| main.rs:353:17:355:9 | { ... } | main.rs:353:9:357:9 | if cond {...} else {...} |
|
||||
| main.rs:354:13:354:16 | data | main.rs:353:17:355:9 | { ... } |
|
||||
| main.rs:355:16:357:9 | { ... } | main.rs:353:9:357:9 | if cond {...} else {...} |
|
||||
| main.rs:356:13:356:13 | 0 | main.rs:355:16:357:9 | { ... } |
|
||||
| main.rs:358:9:358:9 | [SSA] a | main.rs:359:21:359:21 | a |
|
||||
| main.rs:358:9:358:9 | a | main.rs:358:9:358:9 | [SSA] a |
|
||||
| main.rs:358:13:358:22 | source(...) | main.rs:358:9:358:9 | a |
|
||||
| main.rs:359:9:359:9 | [SSA] b | main.rs:360:10:360:10 | b |
|
||||
| main.rs:359:9:359:9 | b | main.rs:359:9:359:9 | [SSA] b |
|
||||
| main.rs:359:13:359:22 | f(...) | main.rs:359:9:359:9 | b |
|
||||
| main.rs:384:13:384:33 | result_questionmark(...) | main.rs:384:9:384:9 | _ |
|
||||
storeStep
|
||||
| main.rs:94:14:94:22 | source(...) | tuple.0 | main.rs:94:13:94:26 | TupleExpr |
|
||||
| main.rs:94:25:94:25 | 2 | tuple.1 | main.rs:94:13:94:26 | TupleExpr |
|
||||
@@ -421,15 +451,22 @@ storeStep
|
||||
| main.rs:211:19:211:28 | source(...) | Some | main.rs:211:14:211:29 | Some(...) |
|
||||
| main.rs:212:19:212:19 | 2 | Some | main.rs:212:14:212:20 | Some(...) |
|
||||
| main.rs:224:19:224:28 | source(...) | Some | main.rs:224:14:224:29 | Some(...) |
|
||||
| main.rs:234:29:234:38 | source(...) | A | main.rs:234:14:234:39 | ...::A(...) |
|
||||
| main.rs:235:29:235:29 | 2 | B | main.rs:235:14:235:30 | ...::B(...) |
|
||||
| main.rs:252:16:252:25 | source(...) | A | main.rs:252:14:252:26 | A(...) |
|
||||
| main.rs:253:16:253:16 | 2 | B | main.rs:253:14:253:17 | B(...) |
|
||||
| main.rs:274:18:274:27 | source(...) | C | main.rs:273:14:275:5 | ...::C {...} |
|
||||
| main.rs:276:41:276:41 | 2 | D | main.rs:276:14:276:43 | ...::D {...} |
|
||||
| main.rs:294:18:294:27 | source(...) | C | main.rs:293:14:295:5 | C {...} |
|
||||
| main.rs:296:27:296:27 | 2 | D | main.rs:296:14:296:29 | D {...} |
|
||||
| main.rs:345:27:345:27 | 0 | Some | main.rs:345:22:345:28 | Some(...) |
|
||||
| main.rs:229:19:229:28 | source(...) | Some | main.rs:229:14:229:29 | Some(...) |
|
||||
| main.rs:230:19:230:19 | 2 | Some | main.rs:230:14:230:20 | Some(...) |
|
||||
| main.rs:234:10:234:10 | 0 | Some | main.rs:234:5:234:11 | Some(...) |
|
||||
| main.rs:238:35:238:44 | source(...) | Ok | main.rs:238:32:238:45 | Ok(...) |
|
||||
| main.rs:239:35:239:35 | 2 | Ok | main.rs:239:32:239:36 | Ok(...) |
|
||||
| main.rs:240:36:240:45 | source(...) | Err | main.rs:240:32:240:46 | Err(...) |
|
||||
| main.rs:247:8:247:8 | 0 | Ok | main.rs:247:5:247:9 | Ok(...) |
|
||||
| main.rs:256:29:256:38 | source(...) | A | main.rs:256:14:256:39 | ...::A(...) |
|
||||
| main.rs:257:29:257:29 | 2 | B | main.rs:257:14:257:30 | ...::B(...) |
|
||||
| main.rs:274:16:274:25 | source(...) | A | main.rs:274:14:274:26 | A(...) |
|
||||
| main.rs:275:16:275:16 | 2 | B | main.rs:275:14:275:17 | B(...) |
|
||||
| main.rs:296:18:296:27 | source(...) | C | main.rs:295:14:297:5 | ...::C {...} |
|
||||
| main.rs:298:41:298:41 | 2 | D | main.rs:298:14:298:43 | ...::D {...} |
|
||||
| main.rs:316:18:316:27 | source(...) | C | main.rs:315:14:317:5 | C {...} |
|
||||
| main.rs:318:27:318:27 | 2 | D | main.rs:318:14:318:29 | D {...} |
|
||||
| main.rs:367:27:367:27 | 0 | Some | main.rs:367:22:367:28 | Some(...) |
|
||||
readStep
|
||||
| file://:0:0:0:0 | [summary param] self in lang:core::_::<crate::option::Option>::unwrap | Some | file://:0:0:0:0 | [summary] read: Argument[self].Variant[crate::option::Option::Some(0)] in lang:core::_::<crate::option::Option>::unwrap |
|
||||
| main.rs:33:9:33:15 | Some(...) | Some | main.rs:33:14:33:14 | _ |
|
||||
@@ -453,27 +490,37 @@ readStep
|
||||
| main.rs:205:9:205:23 | ...::Some(...) | Some | main.rs:205:22:205:22 | n |
|
||||
| main.rs:214:9:214:15 | Some(...) | Some | main.rs:214:14:214:14 | n |
|
||||
| main.rs:218:9:218:15 | Some(...) | Some | main.rs:218:14:218:14 | n |
|
||||
| main.rs:237:9:237:25 | ...::A(...) | A | main.rs:237:24:237:24 | n |
|
||||
| main.rs:238:9:238:25 | ...::B(...) | B | main.rs:238:24:238:24 | n |
|
||||
| main.rs:241:9:241:25 | ...::A(...) | A | main.rs:241:24:241:24 | n |
|
||||
| main.rs:241:29:241:45 | ...::B(...) | B | main.rs:241:44:241:44 | n |
|
||||
| main.rs:244:9:244:25 | ...::A(...) | A | main.rs:244:24:244:24 | n |
|
||||
| main.rs:245:9:245:25 | ...::B(...) | B | main.rs:245:24:245:24 | n |
|
||||
| main.rs:255:9:255:12 | A(...) | A | main.rs:255:11:255:11 | n |
|
||||
| main.rs:256:9:256:12 | B(...) | B | main.rs:256:11:256:11 | n |
|
||||
| main.rs:259:9:259:12 | A(...) | A | main.rs:259:11:259:11 | n |
|
||||
| main.rs:259:16:259:19 | B(...) | B | main.rs:259:18:259:18 | n |
|
||||
| main.rs:262:9:262:12 | A(...) | A | main.rs:262:11:262:11 | n |
|
||||
| main.rs:263:9:263:12 | B(...) | B | main.rs:263:11:263:11 | n |
|
||||
| main.rs:278:9:278:38 | ...::C {...} | C | main.rs:278:36:278:36 | n |
|
||||
| main.rs:279:9:279:38 | ...::D {...} | D | main.rs:279:36:279:36 | n |
|
||||
| main.rs:282:9:282:38 | ...::C {...} | C | main.rs:282:36:282:36 | n |
|
||||
| main.rs:282:42:282:71 | ...::D {...} | D | main.rs:282:69:282:69 | n |
|
||||
| main.rs:285:9:285:38 | ...::C {...} | C | main.rs:285:36:285:36 | n |
|
||||
| main.rs:286:9:286:38 | ...::D {...} | D | main.rs:286:36:286:36 | n |
|
||||
| main.rs:298:9:298:24 | C {...} | C | main.rs:298:22:298:22 | n |
|
||||
| main.rs:299:9:299:24 | D {...} | D | main.rs:299:22:299:22 | n |
|
||||
| main.rs:302:9:302:24 | C {...} | C | main.rs:302:22:302:22 | n |
|
||||
| main.rs:302:28:302:43 | D {...} | D | main.rs:302:41:302:41 | n |
|
||||
| main.rs:305:9:305:24 | C {...} | C | main.rs:305:22:305:22 | n |
|
||||
| main.rs:306:9:306:24 | D {...} | D | main.rs:306:22:306:22 | n |
|
||||
| main.rs:231:14:231:15 | s1 | Ok | main.rs:231:14:231:16 | TryExpr |
|
||||
| main.rs:231:14:231:15 | s1 | Some | main.rs:231:14:231:16 | TryExpr |
|
||||
| main.rs:233:10:233:11 | s2 | Ok | main.rs:233:10:233:12 | TryExpr |
|
||||
| main.rs:233:10:233:11 | s2 | Some | main.rs:233:10:233:12 | TryExpr |
|
||||
| main.rs:241:14:241:15 | s1 | Ok | main.rs:241:14:241:16 | TryExpr |
|
||||
| main.rs:241:14:241:15 | s1 | Some | main.rs:241:14:241:16 | TryExpr |
|
||||
| main.rs:242:14:242:15 | s2 | Ok | main.rs:242:14:242:16 | TryExpr |
|
||||
| main.rs:242:14:242:15 | s2 | Some | main.rs:242:14:242:16 | TryExpr |
|
||||
| main.rs:245:14:245:15 | s3 | Ok | main.rs:245:14:245:16 | TryExpr |
|
||||
| main.rs:245:14:245:15 | s3 | Some | main.rs:245:14:245:16 | TryExpr |
|
||||
| main.rs:259:9:259:25 | ...::A(...) | A | main.rs:259:24:259:24 | n |
|
||||
| main.rs:260:9:260:25 | ...::B(...) | B | main.rs:260:24:260:24 | n |
|
||||
| main.rs:263:9:263:25 | ...::A(...) | A | main.rs:263:24:263:24 | n |
|
||||
| main.rs:263:29:263:45 | ...::B(...) | B | main.rs:263:44:263:44 | n |
|
||||
| main.rs:266:9:266:25 | ...::A(...) | A | main.rs:266:24:266:24 | n |
|
||||
| main.rs:267:9:267:25 | ...::B(...) | B | main.rs:267:24:267:24 | n |
|
||||
| main.rs:277:9:277:12 | A(...) | A | main.rs:277:11:277:11 | n |
|
||||
| main.rs:278:9:278:12 | B(...) | B | main.rs:278:11:278:11 | n |
|
||||
| main.rs:281:9:281:12 | A(...) | A | main.rs:281:11:281:11 | n |
|
||||
| main.rs:281:16:281:19 | B(...) | B | main.rs:281:18:281:18 | n |
|
||||
| main.rs:284:9:284:12 | A(...) | A | main.rs:284:11:284:11 | n |
|
||||
| main.rs:285:9:285:12 | B(...) | B | main.rs:285:11:285:11 | n |
|
||||
| main.rs:300:9:300:38 | ...::C {...} | C | main.rs:300:36:300:36 | n |
|
||||
| main.rs:301:9:301:38 | ...::D {...} | D | main.rs:301:36:301:36 | n |
|
||||
| main.rs:304:9:304:38 | ...::C {...} | C | main.rs:304:36:304:36 | n |
|
||||
| main.rs:304:42:304:71 | ...::D {...} | D | main.rs:304:69:304:69 | n |
|
||||
| main.rs:307:9:307:38 | ...::C {...} | C | main.rs:307:36:307:36 | n |
|
||||
| main.rs:308:9:308:38 | ...::D {...} | D | main.rs:308:36:308:36 | n |
|
||||
| main.rs:320:9:320:24 | C {...} | C | main.rs:320:22:320:22 | n |
|
||||
| main.rs:321:9:321:24 | D {...} | D | main.rs:321:22:321:22 | n |
|
||||
| main.rs:324:9:324:24 | C {...} | C | main.rs:324:22:324:22 | n |
|
||||
| main.rs:324:28:324:43 | D {...} | D | main.rs:324:41:324:41 | n |
|
||||
| main.rs:327:9:327:24 | C {...} | C | main.rs:327:22:327:22 | n |
|
||||
| main.rs:328:9:328:24 | D {...} | D | main.rs:328:22:328:22 | n |
|
||||
|
||||
@@ -36,44 +36,52 @@ edges
|
||||
| main.rs:224:14:224:29 | Some(...) [Some] | main.rs:225:10:225:11 | s1 [Some] | provenance | |
|
||||
| main.rs:224:19:224:28 | source(...) | main.rs:224:14:224:29 | Some(...) [Some] | provenance | |
|
||||
| main.rs:225:10:225:11 | s1 [Some] | main.rs:225:10:225:20 | ... .unwrap(...) | provenance | |
|
||||
| main.rs:234:14:234:39 | ...::A(...) [A] | main.rs:237:9:237:25 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:234:14:234:39 | ...::A(...) [A] | main.rs:241:9:241:25 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:234:29:234:38 | source(...) | main.rs:234:14:234:39 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:237:9:237:25 | ...::A(...) [A] | main.rs:237:24:237:24 | n | provenance | |
|
||||
| main.rs:237:24:237:24 | n | main.rs:237:35:237:35 | n | provenance | |
|
||||
| main.rs:241:9:241:25 | ...::A(...) [A] | main.rs:241:24:241:24 | n | provenance | |
|
||||
| main.rs:241:24:241:24 | n | main.rs:241:55:241:55 | n | provenance | |
|
||||
| main.rs:252:14:252:26 | A(...) [A] | main.rs:255:9:255:12 | A(...) [A] | provenance | |
|
||||
| main.rs:252:14:252:26 | A(...) [A] | main.rs:259:9:259:12 | A(...) [A] | provenance | |
|
||||
| main.rs:252:16:252:25 | source(...) | main.rs:252:14:252:26 | A(...) [A] | provenance | |
|
||||
| main.rs:255:9:255:12 | A(...) [A] | main.rs:255:11:255:11 | n | provenance | |
|
||||
| main.rs:255:11:255:11 | n | main.rs:255:22:255:22 | n | provenance | |
|
||||
| main.rs:259:9:259:12 | A(...) [A] | main.rs:259:11:259:11 | n | provenance | |
|
||||
| main.rs:259:11:259:11 | n | main.rs:259:29:259:29 | n | provenance | |
|
||||
| main.rs:273:14:275:5 | ...::C {...} [C] | main.rs:278:9:278:38 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:273:14:275:5 | ...::C {...} [C] | main.rs:282:9:282:38 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:274:18:274:27 | source(...) | main.rs:273:14:275:5 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:278:9:278:38 | ...::C {...} [C] | main.rs:278:36:278:36 | n | provenance | |
|
||||
| main.rs:278:36:278:36 | n | main.rs:278:48:278:48 | n | provenance | |
|
||||
| main.rs:282:9:282:38 | ...::C {...} [C] | main.rs:282:36:282:36 | n | provenance | |
|
||||
| main.rs:282:36:282:36 | n | main.rs:282:81:282:81 | n | provenance | |
|
||||
| main.rs:293:14:295:5 | C {...} [C] | main.rs:298:9:298:24 | C {...} [C] | provenance | |
|
||||
| main.rs:293:14:295:5 | C {...} [C] | main.rs:302:9:302:24 | C {...} [C] | provenance | |
|
||||
| main.rs:294:18:294:27 | source(...) | main.rs:293:14:295:5 | C {...} [C] | provenance | |
|
||||
| main.rs:298:9:298:24 | C {...} [C] | main.rs:298:22:298:22 | n | provenance | |
|
||||
| main.rs:298:22:298:22 | n | main.rs:298:34:298:34 | n | provenance | |
|
||||
| main.rs:302:9:302:24 | C {...} [C] | main.rs:302:22:302:22 | n | provenance | |
|
||||
| main.rs:302:22:302:22 | n | main.rs:302:53:302:53 | n | provenance | |
|
||||
| main.rs:314:20:314:52 | if cond {...} else {...} | main.rs:315:10:315:16 | f(...) | provenance | |
|
||||
| main.rs:314:30:314:39 | source(...) | main.rs:314:20:314:52 | if cond {...} else {...} | provenance | |
|
||||
| main.rs:319:20:319:23 | ... | main.rs:321:18:321:21 | data | provenance | |
|
||||
| main.rs:325:13:325:22 | source(...) | main.rs:326:13:326:13 | a | provenance | |
|
||||
| main.rs:326:13:326:13 | a | main.rs:319:20:319:23 | ... | provenance | |
|
||||
| main.rs:330:20:330:23 | ... | main.rs:331:9:335:9 | if cond {...} else {...} | provenance | |
|
||||
| main.rs:336:13:336:22 | source(...) | main.rs:337:21:337:21 | a | provenance | |
|
||||
| main.rs:337:13:337:22 | f(...) | main.rs:338:10:338:10 | b | provenance | |
|
||||
| main.rs:337:21:337:21 | a | main.rs:330:20:330:23 | ... | provenance | |
|
||||
| main.rs:337:21:337:21 | a | main.rs:337:13:337:22 | f(...) | provenance | |
|
||||
| main.rs:229:14:229:29 | Some(...) [Some] | main.rs:231:14:231:15 | s1 [Some] | provenance | |
|
||||
| main.rs:229:19:229:28 | source(...) | main.rs:229:14:229:29 | Some(...) [Some] | provenance | |
|
||||
| main.rs:231:14:231:15 | s1 [Some] | main.rs:231:14:231:16 | TryExpr | provenance | |
|
||||
| main.rs:231:14:231:16 | TryExpr | main.rs:232:10:232:11 | i1 | provenance | |
|
||||
| main.rs:238:32:238:45 | Ok(...) [Ok] | main.rs:241:14:241:15 | s1 [Ok] | provenance | |
|
||||
| main.rs:238:35:238:44 | source(...) | main.rs:238:32:238:45 | Ok(...) [Ok] | provenance | |
|
||||
| main.rs:241:14:241:15 | s1 [Ok] | main.rs:241:14:241:16 | TryExpr | provenance | |
|
||||
| main.rs:241:14:241:16 | TryExpr | main.rs:243:10:243:11 | i1 | provenance | |
|
||||
| main.rs:256:14:256:39 | ...::A(...) [A] | main.rs:259:9:259:25 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:256:14:256:39 | ...::A(...) [A] | main.rs:263:9:263:25 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:256:29:256:38 | source(...) | main.rs:256:14:256:39 | ...::A(...) [A] | provenance | |
|
||||
| main.rs:259:9:259:25 | ...::A(...) [A] | main.rs:259:24:259:24 | n | provenance | |
|
||||
| main.rs:259:24:259:24 | n | main.rs:259:35:259:35 | n | provenance | |
|
||||
| main.rs:263:9:263:25 | ...::A(...) [A] | main.rs:263:24:263:24 | n | provenance | |
|
||||
| main.rs:263:24:263:24 | n | main.rs:263:55:263:55 | n | provenance | |
|
||||
| main.rs:274:14:274:26 | A(...) [A] | main.rs:277:9:277:12 | A(...) [A] | provenance | |
|
||||
| main.rs:274:14:274:26 | A(...) [A] | main.rs:281:9:281:12 | A(...) [A] | provenance | |
|
||||
| main.rs:274:16:274:25 | source(...) | main.rs:274:14:274:26 | A(...) [A] | provenance | |
|
||||
| main.rs:277:9:277:12 | A(...) [A] | main.rs:277:11:277:11 | n | provenance | |
|
||||
| main.rs:277:11:277:11 | n | main.rs:277:22:277:22 | n | provenance | |
|
||||
| main.rs:281:9:281:12 | A(...) [A] | main.rs:281:11:281:11 | n | provenance | |
|
||||
| main.rs:281:11:281:11 | n | main.rs:281:29:281:29 | n | provenance | |
|
||||
| main.rs:295:14:297:5 | ...::C {...} [C] | main.rs:300:9:300:38 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:295:14:297:5 | ...::C {...} [C] | main.rs:304:9:304:38 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:296:18:296:27 | source(...) | main.rs:295:14:297:5 | ...::C {...} [C] | provenance | |
|
||||
| main.rs:300:9:300:38 | ...::C {...} [C] | main.rs:300:36:300:36 | n | provenance | |
|
||||
| main.rs:300:36:300:36 | n | main.rs:300:48:300:48 | n | provenance | |
|
||||
| main.rs:304:9:304:38 | ...::C {...} [C] | main.rs:304:36:304:36 | n | provenance | |
|
||||
| main.rs:304:36:304:36 | n | main.rs:304:81:304:81 | n | provenance | |
|
||||
| main.rs:315:14:317:5 | C {...} [C] | main.rs:320:9:320:24 | C {...} [C] | provenance | |
|
||||
| main.rs:315:14:317:5 | C {...} [C] | main.rs:324:9:324:24 | C {...} [C] | provenance | |
|
||||
| main.rs:316:18:316:27 | source(...) | main.rs:315:14:317:5 | C {...} [C] | provenance | |
|
||||
| main.rs:320:9:320:24 | C {...} [C] | main.rs:320:22:320:22 | n | provenance | |
|
||||
| main.rs:320:22:320:22 | n | main.rs:320:34:320:34 | n | provenance | |
|
||||
| main.rs:324:9:324:24 | C {...} [C] | main.rs:324:22:324:22 | n | provenance | |
|
||||
| main.rs:324:22:324:22 | n | main.rs:324:53:324:53 | n | provenance | |
|
||||
| main.rs:336:20:336:52 | if cond {...} else {...} | main.rs:337:10:337:16 | f(...) | provenance | |
|
||||
| main.rs:336:30:336:39 | source(...) | main.rs:336:20:336:52 | if cond {...} else {...} | provenance | |
|
||||
| main.rs:341:20:341:23 | ... | main.rs:343:18:343:21 | data | provenance | |
|
||||
| main.rs:347:13:347:22 | source(...) | main.rs:348:13:348:13 | a | provenance | |
|
||||
| main.rs:348:13:348:13 | a | main.rs:341:20:341:23 | ... | provenance | |
|
||||
| main.rs:352:20:352:23 | ... | main.rs:353:9:357:9 | if cond {...} else {...} | provenance | |
|
||||
| main.rs:358:13:358:22 | source(...) | main.rs:359:21:359:21 | a | provenance | |
|
||||
| main.rs:359:13:359:22 | f(...) | main.rs:360:10:360:10 | b | provenance | |
|
||||
| main.rs:359:21:359:21 | a | main.rs:352:20:352:23 | ... | provenance | |
|
||||
| main.rs:359:21:359:21 | a | main.rs:359:13:359:22 | f(...) | provenance | |
|
||||
nodes
|
||||
| main.rs:15:10:15:18 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:19:13:19:21 | source(...) | semmle.label | source(...) |
|
||||
@@ -125,53 +133,63 @@ nodes
|
||||
| main.rs:224:19:224:28 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:225:10:225:11 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:225:10:225:20 | ... .unwrap(...) | semmle.label | ... .unwrap(...) |
|
||||
| main.rs:234:14:234:39 | ...::A(...) [A] | semmle.label | ...::A(...) [A] |
|
||||
| main.rs:234:29:234:38 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:237:9:237:25 | ...::A(...) [A] | semmle.label | ...::A(...) [A] |
|
||||
| main.rs:237:24:237:24 | n | semmle.label | n |
|
||||
| main.rs:237:35:237:35 | n | semmle.label | n |
|
||||
| main.rs:241:9:241:25 | ...::A(...) [A] | semmle.label | ...::A(...) [A] |
|
||||
| main.rs:241:24:241:24 | n | semmle.label | n |
|
||||
| main.rs:241:55:241:55 | n | semmle.label | n |
|
||||
| main.rs:252:14:252:26 | A(...) [A] | semmle.label | A(...) [A] |
|
||||
| main.rs:252:16:252:25 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:255:9:255:12 | A(...) [A] | semmle.label | A(...) [A] |
|
||||
| main.rs:255:11:255:11 | n | semmle.label | n |
|
||||
| main.rs:255:22:255:22 | n | semmle.label | n |
|
||||
| main.rs:259:9:259:12 | A(...) [A] | semmle.label | A(...) [A] |
|
||||
| main.rs:259:11:259:11 | n | semmle.label | n |
|
||||
| main.rs:259:29:259:29 | n | semmle.label | n |
|
||||
| main.rs:273:14:275:5 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:274:18:274:27 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:278:9:278:38 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:278:36:278:36 | n | semmle.label | n |
|
||||
| main.rs:278:48:278:48 | n | semmle.label | n |
|
||||
| main.rs:282:9:282:38 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:282:36:282:36 | n | semmle.label | n |
|
||||
| main.rs:282:81:282:81 | n | semmle.label | n |
|
||||
| main.rs:293:14:295:5 | C {...} [C] | semmle.label | C {...} [C] |
|
||||
| main.rs:294:18:294:27 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:298:9:298:24 | C {...} [C] | semmle.label | C {...} [C] |
|
||||
| main.rs:298:22:298:22 | n | semmle.label | n |
|
||||
| main.rs:298:34:298:34 | n | semmle.label | n |
|
||||
| main.rs:302:9:302:24 | C {...} [C] | semmle.label | C {...} [C] |
|
||||
| main.rs:302:22:302:22 | n | semmle.label | n |
|
||||
| main.rs:302:53:302:53 | n | semmle.label | n |
|
||||
| main.rs:314:20:314:52 | if cond {...} else {...} | semmle.label | if cond {...} else {...} |
|
||||
| main.rs:314:30:314:39 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:315:10:315:16 | f(...) | semmle.label | f(...) |
|
||||
| main.rs:319:20:319:23 | ... | semmle.label | ... |
|
||||
| main.rs:321:18:321:21 | data | semmle.label | data |
|
||||
| main.rs:325:13:325:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:326:13:326:13 | a | semmle.label | a |
|
||||
| main.rs:330:20:330:23 | ... | semmle.label | ... |
|
||||
| main.rs:331:9:335:9 | if cond {...} else {...} | semmle.label | if cond {...} else {...} |
|
||||
| main.rs:336:13:336:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:337:13:337:22 | f(...) | semmle.label | f(...) |
|
||||
| main.rs:337:21:337:21 | a | semmle.label | a |
|
||||
| main.rs:338:10:338:10 | b | semmle.label | b |
|
||||
| main.rs:229:14:229:29 | Some(...) [Some] | semmle.label | Some(...) [Some] |
|
||||
| main.rs:229:19:229:28 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:231:14:231:15 | s1 [Some] | semmle.label | s1 [Some] |
|
||||
| main.rs:231:14:231:16 | TryExpr | semmle.label | TryExpr |
|
||||
| main.rs:232:10:232:11 | i1 | semmle.label | i1 |
|
||||
| main.rs:238:32:238:45 | Ok(...) [Ok] | semmle.label | Ok(...) [Ok] |
|
||||
| main.rs:238:35:238:44 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:241:14:241:15 | s1 [Ok] | semmle.label | s1 [Ok] |
|
||||
| main.rs:241:14:241:16 | TryExpr | semmle.label | TryExpr |
|
||||
| main.rs:243:10:243:11 | i1 | semmle.label | i1 |
|
||||
| main.rs:256:14:256:39 | ...::A(...) [A] | semmle.label | ...::A(...) [A] |
|
||||
| main.rs:256:29:256:38 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:259:9:259:25 | ...::A(...) [A] | semmle.label | ...::A(...) [A] |
|
||||
| main.rs:259:24:259:24 | n | semmle.label | n |
|
||||
| main.rs:259:35:259:35 | n | semmle.label | n |
|
||||
| main.rs:263:9:263:25 | ...::A(...) [A] | semmle.label | ...::A(...) [A] |
|
||||
| main.rs:263:24:263:24 | n | semmle.label | n |
|
||||
| main.rs:263:55:263:55 | n | semmle.label | n |
|
||||
| main.rs:274:14:274:26 | A(...) [A] | semmle.label | A(...) [A] |
|
||||
| main.rs:274:16:274:25 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:277:9:277:12 | A(...) [A] | semmle.label | A(...) [A] |
|
||||
| main.rs:277:11:277:11 | n | semmle.label | n |
|
||||
| main.rs:277:22:277:22 | n | semmle.label | n |
|
||||
| main.rs:281:9:281:12 | A(...) [A] | semmle.label | A(...) [A] |
|
||||
| main.rs:281:11:281:11 | n | semmle.label | n |
|
||||
| main.rs:281:29:281:29 | n | semmle.label | n |
|
||||
| main.rs:295:14:297:5 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:296:18:296:27 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:300:9:300:38 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:300:36:300:36 | n | semmle.label | n |
|
||||
| main.rs:300:48:300:48 | n | semmle.label | n |
|
||||
| main.rs:304:9:304:38 | ...::C {...} [C] | semmle.label | ...::C {...} [C] |
|
||||
| main.rs:304:36:304:36 | n | semmle.label | n |
|
||||
| main.rs:304:81:304:81 | n | semmle.label | n |
|
||||
| main.rs:315:14:317:5 | C {...} [C] | semmle.label | C {...} [C] |
|
||||
| main.rs:316:18:316:27 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:320:9:320:24 | C {...} [C] | semmle.label | C {...} [C] |
|
||||
| main.rs:320:22:320:22 | n | semmle.label | n |
|
||||
| main.rs:320:34:320:34 | n | semmle.label | n |
|
||||
| main.rs:324:9:324:24 | C {...} [C] | semmle.label | C {...} [C] |
|
||||
| main.rs:324:22:324:22 | n | semmle.label | n |
|
||||
| main.rs:324:53:324:53 | n | semmle.label | n |
|
||||
| main.rs:336:20:336:52 | if cond {...} else {...} | semmle.label | if cond {...} else {...} |
|
||||
| main.rs:336:30:336:39 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:337:10:337:16 | f(...) | semmle.label | f(...) |
|
||||
| main.rs:341:20:341:23 | ... | semmle.label | ... |
|
||||
| main.rs:343:18:343:21 | data | semmle.label | data |
|
||||
| main.rs:347:13:347:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:348:13:348:13 | a | semmle.label | a |
|
||||
| main.rs:352:20:352:23 | ... | semmle.label | ... |
|
||||
| main.rs:353:9:357:9 | if cond {...} else {...} | semmle.label | if cond {...} else {...} |
|
||||
| main.rs:358:13:358:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:359:13:359:22 | f(...) | semmle.label | f(...) |
|
||||
| main.rs:359:21:359:21 | a | semmle.label | a |
|
||||
| main.rs:360:10:360:10 | b | semmle.label | b |
|
||||
subpaths
|
||||
| main.rs:337:21:337:21 | a | main.rs:330:20:330:23 | ... | main.rs:331:9:335:9 | if cond {...} else {...} | main.rs:337:13:337:22 | f(...) |
|
||||
| main.rs:359:21:359:21 | a | main.rs:352:20:352:23 | ... | main.rs:353:9:357:9 | if cond {...} else {...} | main.rs:359:13:359:22 | f(...) |
|
||||
testFailures
|
||||
#select
|
||||
| main.rs:15:10:15:18 | source(...) | main.rs:15:10:15:18 | source(...) | main.rs:15:10:15:18 | source(...) | $@ | main.rs:15:10:15:18 | source(...) | source(...) |
|
||||
@@ -188,14 +206,16 @@ testFailures
|
||||
| main.rs:201:33:201:33 | n | main.rs:198:27:198:36 | source(...) | main.rs:201:33:201:33 | n | $@ | main.rs:198:27:198:36 | source(...) | source(...) |
|
||||
| main.rs:214:25:214:25 | n | main.rs:211:19:211:28 | source(...) | main.rs:214:25:214:25 | n | $@ | main.rs:211:19:211:28 | source(...) | source(...) |
|
||||
| main.rs:225:10:225:20 | ... .unwrap(...) | main.rs:224:19:224:28 | source(...) | main.rs:225:10:225:20 | ... .unwrap(...) | $@ | main.rs:224:19:224:28 | source(...) | source(...) |
|
||||
| main.rs:237:35:237:35 | n | main.rs:234:29:234:38 | source(...) | main.rs:237:35:237:35 | n | $@ | main.rs:234:29:234:38 | source(...) | source(...) |
|
||||
| main.rs:241:55:241:55 | n | main.rs:234:29:234:38 | source(...) | main.rs:241:55:241:55 | n | $@ | main.rs:234:29:234:38 | source(...) | source(...) |
|
||||
| main.rs:255:22:255:22 | n | main.rs:252:16:252:25 | source(...) | main.rs:255:22:255:22 | n | $@ | main.rs:252:16:252:25 | source(...) | source(...) |
|
||||
| main.rs:259:29:259:29 | n | main.rs:252:16:252:25 | source(...) | main.rs:259:29:259:29 | n | $@ | main.rs:252:16:252:25 | source(...) | source(...) |
|
||||
| main.rs:278:48:278:48 | n | main.rs:274:18:274:27 | source(...) | main.rs:278:48:278:48 | n | $@ | main.rs:274:18:274:27 | source(...) | source(...) |
|
||||
| main.rs:282:81:282:81 | n | main.rs:274:18:274:27 | source(...) | main.rs:282:81:282:81 | n | $@ | main.rs:274:18:274:27 | source(...) | source(...) |
|
||||
| main.rs:298:34:298:34 | n | main.rs:294:18:294:27 | source(...) | main.rs:298:34:298:34 | n | $@ | main.rs:294:18:294:27 | source(...) | source(...) |
|
||||
| main.rs:302:53:302:53 | n | main.rs:294:18:294:27 | source(...) | main.rs:302:53:302:53 | n | $@ | main.rs:294:18:294:27 | source(...) | source(...) |
|
||||
| main.rs:315:10:315:16 | f(...) | main.rs:314:30:314:39 | source(...) | main.rs:315:10:315:16 | f(...) | $@ | main.rs:314:30:314:39 | source(...) | source(...) |
|
||||
| main.rs:321:18:321:21 | data | main.rs:325:13:325:22 | source(...) | main.rs:321:18:321:21 | data | $@ | main.rs:325:13:325:22 | source(...) | source(...) |
|
||||
| main.rs:338:10:338:10 | b | main.rs:336:13:336:22 | source(...) | main.rs:338:10:338:10 | b | $@ | main.rs:336:13:336:22 | source(...) | source(...) |
|
||||
| main.rs:232:10:232:11 | i1 | main.rs:229:19:229:28 | source(...) | main.rs:232:10:232:11 | i1 | $@ | main.rs:229:19:229:28 | source(...) | source(...) |
|
||||
| main.rs:243:10:243:11 | i1 | main.rs:238:35:238:44 | source(...) | main.rs:243:10:243:11 | i1 | $@ | main.rs:238:35:238:44 | source(...) | source(...) |
|
||||
| main.rs:259:35:259:35 | n | main.rs:256:29:256:38 | source(...) | main.rs:259:35:259:35 | n | $@ | main.rs:256:29:256:38 | source(...) | source(...) |
|
||||
| main.rs:263:55:263:55 | n | main.rs:256:29:256:38 | source(...) | main.rs:263:55:263:55 | n | $@ | main.rs:256:29:256:38 | source(...) | source(...) |
|
||||
| main.rs:277:22:277:22 | n | main.rs:274:16:274:25 | source(...) | main.rs:277:22:277:22 | n | $@ | main.rs:274:16:274:25 | source(...) | source(...) |
|
||||
| main.rs:281:29:281:29 | n | main.rs:274:16:274:25 | source(...) | main.rs:281:29:281:29 | n | $@ | main.rs:274:16:274:25 | source(...) | source(...) |
|
||||
| main.rs:300:48:300:48 | n | main.rs:296:18:296:27 | source(...) | main.rs:300:48:300:48 | n | $@ | main.rs:296:18:296:27 | source(...) | source(...) |
|
||||
| main.rs:304:81:304:81 | n | main.rs:296:18:296:27 | source(...) | main.rs:304:81:304:81 | n | $@ | main.rs:296:18:296:27 | source(...) | source(...) |
|
||||
| main.rs:320:34:320:34 | n | main.rs:316:18:316:27 | source(...) | main.rs:320:34:320:34 | n | $@ | main.rs:316:18:316:27 | source(...) | source(...) |
|
||||
| main.rs:324:53:324:53 | n | main.rs:316:18:316:27 | source(...) | main.rs:324:53:324:53 | n | $@ | main.rs:316:18:316:27 | source(...) | source(...) |
|
||||
| main.rs:337:10:337:16 | f(...) | main.rs:336:30:336:39 | source(...) | main.rs:337:10:337:16 | f(...) | $@ | main.rs:336:30:336:39 | source(...) | source(...) |
|
||||
| main.rs:343:18:343:21 | data | main.rs:347:13:347:22 | source(...) | main.rs:343:18:343:21 | data | $@ | main.rs:347:13:347:22 | source(...) | source(...) |
|
||||
| main.rs:360:10:360:10 | b | main.rs:358:13:358:22 | source(...) | main.rs:360:10:360:10 | b | $@ | main.rs:358:13:358:22 | source(...) | source(...) |
|
||||
|
||||
@@ -225,6 +225,28 @@ fn option_unwrap() {
|
||||
sink(s1.unwrap()); // $ hasValueFlow=19
|
||||
}
|
||||
|
||||
fn option_questionmark() -> Option<i64> {
|
||||
let s1 = Some(source(20));
|
||||
let s2 = Some(2);
|
||||
let i1 = s1?;
|
||||
sink(i1); // $ hasValueFlow=20
|
||||
sink(s2?);
|
||||
Some(0)
|
||||
}
|
||||
|
||||
fn result_questionmark() -> Result<i64, i64> {
|
||||
let s1: Result<i64, i64> = Ok(source(20));
|
||||
let s2: Result<i64, i64> = Ok(2);
|
||||
let s3: Result<i64, i64> = Err(source(77));
|
||||
let i1 = s1?;
|
||||
let i2 = s2?;
|
||||
sink(i1); // $ hasValueFlow=20
|
||||
sink(i2);
|
||||
let i3 = s3?;
|
||||
sink(i3); // No flow since value is in `Err`.
|
||||
Ok(0)
|
||||
}
|
||||
|
||||
enum MyTupleEnum {
|
||||
A(i64),
|
||||
B(i64),
|
||||
@@ -358,6 +380,8 @@ fn main() {
|
||||
option_pattern_match_qualified();
|
||||
option_pattern_match_unqualified();
|
||||
option_unwrap();
|
||||
option_questionmark();
|
||||
let _ = result_questionmark();
|
||||
custom_tuple_enum_pattern_match_qualified();
|
||||
custom_tuple_enum_pattern_match_unqualified();
|
||||
custom_record_enum_pattern_match_qualified();
|
||||
|
||||
Reference in New Issue
Block a user